神秘错误:“无法打开数据库phenotype.db,数据库被锁定。”在网上找不到任何信息

时间:2016-07-25 17:56:48

标签: android android-sqlite

我试图测试一个应用程序并且它无法启动,而是我不断收到此错误:

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的信息。当我测试这个时,我没有做任何与数据库相关的事情;我做的唯一更改是与布局相关。

奇怪的是,这发生在我几周前测试的另一个应用程序上。这是一个不同的应用程序,在不同的设备上测试,来自不同的计算机,并出现完全相同的错误。在那种情况下,我切换到另一个设备,错误消失了。但是现在我切换到的设备出现了这个错误。

这与Google有什么不一样的故障吗?我该怎么做才能解决它,以便我可以测试我的应用程序?

1 个答案:

答案 0 :(得分:1)

您忘记关闭数据库,或者当您尝试写入数据库时​​,其他线程正在写入数据库。 SQLite在写入数据库时​​将其锁定,以避免在另一个实体同时尝试写入同一数据库时发生损坏。 Android,只会在logcat中显示错误,而您提供的查询将被遗忘 建议:

  • 您只能从一个SQLOpenHelper
  • 访问数据库
  • 确保在完成数据库帮助程序后关闭所有数据库帮助程序实例
  • 如果您没有成功设置(例如,如果您想要回滚),请确保始终使用endTransaction()结束交易,以防您使用交易