Google Playのリリース前レポートで「no such table: media_store_extension」のクラッシュ報告 〜機種xiaomi Redmi 6A〜
結論:気にしなくて良い(Google側のエラーによるもの)
2022/6/28 Flutter エラー・バグ日記
Google Play Consoleで、更新版のアプリをリリースしたが、後になって、リリース前レポートでクラッシュ報告が来ていたことに気づいて焦る。
最終的に、なんとか結論にたどり着いたが、日本語の情報が見つからなかったので、備忘のため記録。
クラッシュ時のスタックトレースと、Google Play Consoleの画面は以下の通り(logcat全体は省略)。
java.lang.RuntimeException: android.database.sqlite.SQLiteException: no such table: media_store_extension (code 1): , while compiling: SELECT id FROM media_store_extension WHERE POPULATED_COLUMNS != 134217726 OR DATE_MODIFIED = -1 OR FINGERPRINT IS NULL
エラー文中に「SQLiteException」とあるので、データベース周りが怪しい。
今回、sqfliteのデータベース部分を修正したので、恐れていたマイグレーション処理がうまく行っていないのかも、、と焦る。
しかし、よく見ると、「no such table: media_store_extension」とあり、特に「media_store_extension」という名称のテーブルは作っていなかったので、不思議に思う。
また、機種は「xiaomi Redmi 6A」、OSのバージョンは「Android 8.1(SDK 27)」ということで、あまり一般的ではなさそうな環境でのエラー。
ネットでググるも、日本語の情報は全く見つからず。
英語では、最初にUnityでの開発で報告されている、下記記事をみつけた。
解決に至ってはいないようだったが、「xiaomi Redmi 6A」で発生したとの報告が多い点が気になった。
続けて探すと、次の記事を見つけた。
これはFlutterの例らしい。自分とほぼ同じ状況。
しかも、ここで質問されている方は、「自分のプロジェクトではSQLITEを使っていない」と書いている。
となると、データベース周りが原因ではないかもしれない(定義していないテーブル名がエラー文中に書かれていることにも合点がいく)。
続けて見ていくと、ベストアンサーとされているコメントでは、
- 他の記事を参考に、一部コードの修正を行ってみたものの、改善しない
- エラーは「xiaomi Redmi 6A」の機種だけで発生する
- スタックトレースの詳細によると、エラーは、Googleのテストボット(リリース前レポートを作成するときのボット)が、スクリーンショットを撮る際に生じている
- これはGoogle側のエラーであり、無視して問題ない
とのこと。
こちらのイシューにも類似の報告があり、同様のコメントがなされている。
そう言えば、リリース前レポートで発生する警告の中にも、アプリ側のコーディングが原因ではなく、Googleのボット側が原因で発生するものがいくつかあったことを思い出した。
その後、別の部分を修正する必要があったので(sqflite関係は一切変更せず)、再度、Google Play Consoleにアップロードしたところ、今度はリリース前レポートで、全く同じ「xiaomi Redmi 6A」の機種で、問題なしの判定になっていた。
以上、リリース前レポートで「xiaomi Redmi 6A」のクラッシュ報告(スタックトレースが「SQLite」云々という内容)を受けても、特段、気にしなくて良いものと理解。
リリースしたアプリ(全てFlutterで開発)
個人アプリ開発で役立ったもの
おすすめの学習教材
\超初心者向けでオススメな元Udemyの講座/
\キャンペーン時を狙えば安価で網羅的な内容が学べる(日本語訳あり)/
\Gitの基礎について無料で学べる/
おすすめの学習書籍
\実用的。image_pickerに関してかなり助けられた/
\Dartの基礎文法を素早くインプットできる/