在测试一个Android程序,该程序读取一个sqlite数据库mydb。我做了如下操作以后,SQLiteOpenHelper的getWritableDatabase方法出异
在测试一个Android程序,,该程序读取一个sqlite数据库mydb。我做了如下操作以后,SQLiteOpenHelper的getWritableDatabase方法出异常。
1.在adb shell下备份了此数据库: mv mydb mydb_bak
2.又将该数据库恢复:mv mydb_bak mydb
3.运行程序,发生上述错误。
重新用程序生成一个可用的数据库,查看可用数据库和经过备份操作的数据库有如下区别:
ls -l
可用数据库:
-rw-rw---- app_48 app_48 37888 2010-11-21 10:55 mydb
经过备份操作的数据库:
-rw-rw---- root root 37888 2010-11-20 20:34 mydb
问题一目了然。权限没变,所属的群组变了。程序没有root权限,当然无法打开备份过的mydb了。
修改文件权限:chown app_48.app_48 mydb
问题解决。