2016-07-25 3 views
4

を任意の情報を見つけることができません:私はオンラインこのエラーに関する情報を見つけることができません謎のエラー:「データベース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とある種の不具合ですか?私はそれを解決するために私は私のアプリをテストすることができますか?

+0

関連:http://stackoverflow.com/questions/8360400/error-code-5-database -is-loc ked-when-a-contentprovider – Sufian

+0

あなたのアプリでデータベースを使用していますか? – Sufian

+0

私は昨日から同じエラーが発生しています。何もしなかった、SQLiteを使用しないでください。 – ElDuderino

答えて

1

データベースを閉じるのを忘れている、またはあなたはそれへの書き込みをしようとしているとき、別のスレッドには、データベースへの書き込みをされています。 SQLiteは、別のエンティティが同じデータベースに同時に書き込もうとした場合に破損しないように、書き込み時にデータベースをロックします。 Androidの場合、logcatにのみエラーが表示され、入力したクエリは忘れ去られます。
推奨事項:

  • あなただけがあなたも一緒に
  • を終えた後、あなたがいつもにもendTransaction()との取引を終了してくださいデータベースヘルパーのすべてのインスタンスを閉じることを確認してください1 SQLOpenHelper
  • からデータベースにアクセスしますトランザクションを使用している場合など、トランザクションを成功させる(つまりロールバックしたい場合など)場合は、トランザクションを使用してください。
関連する問題