我试图测试一个应用程序,它不会启动,而是我不断收到此错误:
Failed to open database '/data/data/com.google.android.gms/databases/phenotype.db'.
android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_mode
我无法在线找到有关此错误的任何信息,也没有关于phenotype.db的信息.当我测试这个时,我没有做任何与数据库相关的事情;我做的唯一更改是与布局相关.
奇怪的是,这发生在我几周前测试的另一个应用程序上.这是一个不同的应用程序,在不同的设备上测试,来自不同的计算机,并出现完全相同的错误.在那种情况下,我切换到另一个设备,错误消失了.但是现在我切换到的设备出现了这个错误.
这与谷歌有什么不一样的故障吗?我该怎么做才能解决它,以便我可以测试我的应用程序?
最佳答案 您忘记关闭数据库,或者当您尝试写入数据库时,另一个线程正在写入数据库. SQLite在写入数据库时会锁定数据库,以避免在另一个实体同时尝试写入同一数据库时发生损坏. Android,只会在logcat中显示错误,而您提供的查询将被遗忘.
建议:
>您只能从一个SQLOpenHelper访问数据库
>确保在完成数据库帮助程序后关闭所有数据库帮助程序实例
>如果你没有成功设置它们(即如果你想要回滚它们),你确保你总是用endTransaction()结束交易,以防你使用交易