Android程序读取数据库失败问题


在测试一个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
问题解决。

相关内容