SQLiteReadOnlyDatabaseException: attempt to write a readonly database (code 1032)

SQLiteReadOnlyDatabaseException: attempt to write a readonly database (code 1032)
是因为res/raw的文件复制过去之后没有读写的权限

于是我想到了第一种解决方法治标不治本:
我去到app的databases目录下对数据库文件进行加权限
chmod 777 xxx

然后就可以正常运行。
但是这种方法对于每次重装app都需要重新跑一次上面的加权限的流程,比较麻烦。

第二种治本:

参考: http://stackoverflow.com/questions/35090893/sqlitereadonlydatabaseexception-attempt-to-write-a-readonly-database-code-1032

原来我是在BaseApplication里面进行复制数据库,但是发现不能写,只可以读,每当插入数据就报上面的错误

后来我参考了stackoverflow后就在DBHelper里面删除后再进行复制,后来就好了
@Override
public void onCreate(SQLiteDatabase db)
{
    mContext.deleteDatabase(DB_NAME);
    getmDb();



你可能感兴趣的:(Android)