微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 apk 迁移到 aab 后 SQLite 崩溃

如何解决从 apk 迁移到 aab 后 SQLite 崩溃

我们刚刚迁移了我们的应用程序,以使用应用程序包 (aab) 而不是 apk。测试过程中没有发现任何问题,但当我们真正交付给用户时,我们开始收到奇怪的崩溃报告。

似乎 sqlite 存在一些内部问题:

java.lang.RuntimeException: 
  at androidx.room.RoomTrackingLiveData$1.run (RoomTrackingLiveData.java:92)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
  at java.lang.Thread.run (Thread.java:923)
Caused by: net.sqlcipher.database.sqliteException: 
  at net.sqlcipher.database.sqliteCompiledsql.native_compile (Native Method)
  at net.sqlcipher.database.sqliteCompiledsql.compile (sqliteCompiledsql.java:89)
  at net.sqlcipher.database.sqliteCompiledsql.<init> (sqliteCompiledsql.java:62)
  at net.sqlcipher.database.sqliteProgram.<init> (sqliteProgram.java:91)
  at net.sqlcipher.database.sqliteQuery.<init> (sqliteQuery.java:48)
  at net.sqlcipher.database.sqliteDirectCursorDriver.query (sqliteDirectCursorDriver.java:60)
  at net.sqlcipher.database.sqliteDatabase.rawQueryWithFactory (sqliteDatabase.java:2016)
  at net.sqlcipher.database.sqliteDatabase.rawQuery (sqliteDatabase.java:1902)
  at net.sqlcipher.database.sqliteDatabase.keyDatabase (sqliteDatabase.java:2669)
  at net.sqlcipher.database.sqliteDatabase.openDatabaseInternal (sqliteDatabase.java:2599)
  at net.sqlcipher.database.sqliteDatabase.openDatabase (sqliteDatabase.java:1247)
  at net.sqlcipher.database.sqliteDatabase.openorCreateDatabase (sqliteDatabase.java:1322)
  at net.sqlcipher.database.sqliteOpenHelper.getWritableDatabase (sqliteOpenHelper.java:166)

如果清除数据库或卸载应用程序然后重新安装,则问题不再重现。

您认为这可能与 apk 到 aab 的迁移有关吗?有没有人遇到过这种情况?

我曾尝试在网上搜索类似的问题,但直到现在我还没有找到类似的问题。

我打算尝试以下选项来解决此问题:

  • 增加数据库版本并回退到特定版本的破坏性迁移,以重新创建手动解决问题的“清除数据”方法
  • 尝试使用 Google 的新旁加载逻辑。基本上,它会在应用程序启动时检测缺少的必需组件并提示用户重新安装。它不漂亮,但总比崩溃好。我对这种方法有点怀疑,因为我们没有收到任何 LinkageErrorResourceNotFound 错误,但我别无选择。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。