使用sqlite报SQLiteReadOnlyDatabaseException异常
跑步_跑步 2016-09-08 11:32:54 在使用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;
}
为什么还是会出错呢,不是每次都毕现。可能有什么原因会引起这种呢?