Intereting Posts
Как я могу уменьшить маржу? Android OpenGL ES – поддерживаются все расширения? Изменился приемник для содержимого буфера обмена? Модернизация: как отправить запрос POST с постоянными полями? Java.lang.RuntimeException: Невозможно создать экземпляр приложения android.app.Application: java.lang.NullPointerException при LoadedApk.makeApplication Android: Universal Image Loader получает возможность рисования из строкового массива «Посланник» Facebook имеет приемник SMS-вещания, который имеет наивысший приоритет после перезагрузки Определите «Косвенный подкласс» в Android Gson не может анализировать данные формата json формата в Kotlin Java.io.IOException: в ICS 4.0.3 полученная проверка подлинности завершена Нет анимации с ViewFlipper? Google API: разница между ключом браузера и клавишей Android? Издевательствование местоположений gps в телефоне Использовать ChromeView в Android-приложении Eclipse Juno – Assertion Failed (Проблемы возникли при вызове кода из подключаемого модуля: «org.eclipse.jface».)

Тайная ошибка: «Не удалось открыть базу данных phenotype.db, база данных заблокирована». Невозможно найти информацию в Интернете

Я пытался проверить приложение, и он не запускался, вместо этого я продолжал получать эту ошибку:

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? Что я могу сделать, чтобы решить эту проблему, чтобы проверить приложение?

Вы забыли закрыть базу данных, или другой поток пишет в базу данных, когда вы пытаетесь ее написать. SQLite блокирует базу данных, когда она пишет ей, чтобы избежать коррупции, если другой объект пытается записать в одну и ту же базу данных одновременно. Android, будет отображаться только ошибка в logcat, и запрошенный вами запрос будет просто забыт.
Рекомендации:

  • Вы SQLOpenHelper доступ только к базе данных из одного SQLOpenHelper
  • Вы убедитесь, что вы закрываете все экземпляры помощников базы данных, как только вы закончите с ними
  • Вы всегда endTransaction() транзакции с помощью endTransaction() также если вы не установили их успешными (т. endTransaction() Если вы хотите перевернуть их назад), если вы используете транзакции