java.lang.RuntimeException:android.database.sqlite.SQLiteException:没有这样的表:media_store_extension(代码1)

Posted

技术标签:

【中文标题】java.lang.RuntimeException:android.database.sqlite.SQLiteException:没有这样的表:media_store_extension(代码1):,【英文标题】:java.lang.RuntimeException: android.database.sqlite.SQLiteException: no such table: media_store_extension (code 1): , 【发布时间】:2021-12-23 09:38:38 【问题描述】:

我在 2021 年 10 月之后在 Play 商店中发布我的应用时遇到问题,错误提示表 media_store_extension 不存在。问题是:我没有在项目中使用 SQLITE,所以我不知道是什么导致了这个异常。

目标sdk为30,最小为26

完整的错误:

FATAL EXCEPTION: latency_sensitive_executor-thread-1
Process: com.google.android.apps.photos, PID: 29478
java.lang.RuntimeException: android.database.sqlite.SQLiteException: no such table: media_store_extension (code 1): , while compiling: SELECT id FROM media_store_extension ORDER BY id DESC LIMIT 100 OFFSET 0
    at nqo.a(PG:3)
    at aleu.run(PG:6)
    at krv.a(PG:17)
    at krw.run(Unknown Source:6)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at java.lang.Thread.run(Thread.java:764)
    at ksa.run(PG:5)
Caused by: android.database.sqlite.SQLiteException: no such table: media_store_extension (code 1): , while compiling: SELECT id FROM media_store_extension ORDER BY id DESC LIMIT 100 OFFSET 0
    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:890)
    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:501)
    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
    at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
    at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:46)
    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1392)
    at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1239)
    at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1110)
    at agcm.a(PG:8)
    at nnw.run(PG:17)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    ... 4 more

【问题讨论】:

您是否使用了与本地数据库(SQLite)相关的任何第三方库? 或者latency_sensitive_executor 提到的这部分是否是您的任何库中的线程执行器? hole 项目使用了更多的 de 100 库,但是我的团队找不到任何对 SQLITE 的引用,为了解决这个问题,我们为 SQLITE 配置了一个模块,甚至任何时候都不使用。 让我猜一下产生这个错误的设备:它是小米红米6A吗? 正是这个 【参考方案1】:

此错误不仅来自 Flutter 开发人员,还来自 Unity(https://forum.unity.com/threads/getting-an-odd-error-in-internal-android-build-after-updating-iap.1104352/ 和 https://forum.unity.com/threads/error-when-submitting-app-to-google-play.1098139/),在我的例子中 - 对于原生 android 应用程序。

我们在 6 个月前第一次遇到此错误,并应用了统一人员建议的修复:

aaptOptions 
    noCompress 'db'
    ...

但是,昨天我们又收到了同样的错误,所以“修复”没有对我们有用。

发生错误:

    (到目前为止)仅在内部测试期间 仅适用于小米红米 6A。 不定期(不是每次都转载) 始终在处理 com.google.android.apps.photos

目前我看到的most reasonable explanation是在测试机器人尝试截屏时出现异常。

这解释了为什么这个过程是谷歌照片的,为什么每次都不会重现错误,以及为什么只需重新提交一个新版本就可以“修复”它。

这也意味着忽略错误应该没问题。

【讨论】:

我是一名 Flutter 开发人员。您在与崩溃相关的屏幕录像中看到了什么?当测试机器人单击将在我的网站上打开帮助页面的按钮时,我的崩溃。我想知道崩溃是否是由于浏览器意图造成的。 根据forum.unity.com/threads/…,noCompress voodoo 不起作用。【参考方案2】:

我怀疑这是谷歌在发布前报告中使用的特定小米红米 6A 的配置/安装问题。来自各种应用程序的全面报告太多了(例如,另请参阅https://github.com/airsdk/Adobe-Runtime-Support/issues/1376,它是 Android 上的另一个技术堆栈,就像 Unity 或 Flutter 一样)。我没有任何具体的证据,但这是我对一切的直觉。

因此我不会做任何 Gradle aapt configuration voodoo 或 ADT patching 或类似的事情。

【讨论】:

以上是关于java.lang.RuntimeException:android.database.sqlite.SQLiteException:没有这样的表:media_store_extension(代码1)的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 按钮导致崩溃

添加 ImageView 时应用程序崩溃?