在使用ContentProvider更新数据库的时候突然报异常了。
android.database.sqlite.SQLiteReadOnlyDatabaseException: attempt to write a readonly database (code 1032)
at android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount(Native Method)
at android.database.sqlite.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:732)
at android.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:754)
at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:64)
at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1576)
at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1522)在使用前已经获得相应的权限了:
在provider的update回调里这样使用:
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
SqlArguments args = new SqlArguments(uri, selection, selectionArgs); SQLiteDatabase db = mOpenHelper.getWritableDatabase();
int count = db.update(args.table, values, args.where, args.args);
if (count > 0)
sendNotify(uri); return count;
}
为什么还是会出错呢,不是每次都毕现。可能有什么原因会引起这种呢?
android.database.sqlite.SQLiteReadOnlyDatabaseException: attempt to write a readonly database (code 1032)
at android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount(Native Method)
at android.database.sqlite.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:732)
at android.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:754)
at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:64)
at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1576)
at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1522)在使用前已经获得相应的权限了:
在provider的update回调里这样使用:
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
SqlArguments args = new SqlArguments(uri, selection, selectionArgs); SQLiteDatabase db = mOpenHelper.getWritableDatabase();
int count = db.update(args.table, values, args.where, args.args);
if (count > 0)
sendNotify(uri); return count;
}
为什么还是会出错呢,不是每次都毕现。可能有什么原因会引起这种呢?
解决方案 »
- 把一个虚拟sd卡内的文件和文件夹以树形结构显示在虚拟机上要怎么做啊
- Android来电界面的控制
- 在Activity中加载MapView会特别的慢
- 请问:Activity 和系统浏览器可以传递数据么
- 有人知道android的蓝牙怎样自动发送配对pin嘛?
- 有遇到编译android源码生成的所有apk包里都没有classes.dex文件的?
- 如何获取log文件
- 在wrox网站上下载来的android源码 如何在 eclipse中运行
- 请教,中英格式等混合字符串与十六进制ascii的互相
- 使用eclipse运行android程序,点了其中一个项目的.java文件可是运行的是另一个项目的结果
- 请问下安卓APP上实现一个扫描识别图片功能
- Android获取当前动态界面,请问类似ADB shell uiautomator dump的功能如何实现?
配置文件里面给予读写权限了吗 是一个可写的Datebase吗
可以尝试在在配置文件里面给予权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
SQLiteDatabase db = mOpenHelper.getWritableDatabase();
int count = db.update(args.table, values, args.where, args.args);
getWritableDatabase也没问题,唯独在db.update的时候出现了问题。并且不是必现的,偶然出现。
,我现在也遇到这样的问题,权限都没问题,偶尔出现。无法下手,你解决了么?求教