【问题标题】:Android One Plus Two: Failed to change locale for dbAndroid 一加二:无法更改 db 的语言环境
【发布时间】:2015-12-23 14:11:39
【问题描述】:

我在我的一个 Android 项目中使用 Sqlite 数据库。除了一加二设备之外,它在所有设备上都能正常工作。

我在尝试打开数据库时遇到异常。这是崩溃日志。

 12-23 19:14:35.235: E/SQLiteLog(3133): (11) database corruption at line 53216 of [9491ba7d73]
12-23 19:14:35.235: E/SQLiteLog(3133): (11) statement aborts at 7: [SELECT locale FROM android_metadata UNION SELECT NULL ORDER BY locale DESC LIMIT 1] 
12-23 19:14:35.237: E/SQLiteDatabase(3133): Failed to open database '/data/data/com.mycompany.myapp/databases/alcochange.sqlite'.
12-23 19:14:35.237: E/SQLiteDatabase(3133): android.database.sqlite.SQLiteException: Failed to change locale for db '/data/data/com.mycompany.myapp/databases/myapp.sqlite' to 'en_US'.

click here查看完整的崩溃日志

我在这里看到过类似的其他问题,我几乎尝试了所有答案,但没有任何效果。 我试过thisthis

编辑:该设备在Oxygen Lollipop 上运行。

【问题讨论】:

  • 设备型号并没有告诉我们分配、固件、ROM 等。因为 OnePlus 设备通常运行许多不同的配置,所以更有帮助。
  • 这条路径/data/data/com.zanec.dryjanuary/databases/alcochange.sqlite/可能不存在。检查context.getDatabasePath(/data/data/com.zanec.dryjanuary/databases/alcochange.sqlite/) 返回File 类型。
  • 您的崩溃日志中有E/SQLiteDatabase(6278): Caused by: ??? 一行吗?
  • @MadhukarHebbar 我已经检查过了,没问题。这只发生在一加二手机上,在其他手机上也能正常工作。
  • @naXa 是的,有。原因:android.database.sqlite.SQLiteDatabaseCorruptException:数据库磁盘映像格式错误(代码11)。

标签: android sqlite oneplustwo


【解决方案1】:

我找不到出现此错误的原因,但不知何故我通过执行以下操作避免了这种情况。

以前,我在 bundle 中有一个 .sqlite 数据库,当用户第一次打开我们的应用程序时,我将 .sqlite 数据库从 bundle 复制到正确的路径。

但是现在,我已经从 .sqlite 导出了原始查询,并将其作为 txt 文件与捆绑包一起添加。现在,当用户第一次打开应用程序时,我将首先在路径中创建一个空的 .sqlite 文件,然后我从包中的 txt 文件中读取所有 .sql 查询,并在 .sqlite 文件中执行它们路径。

【讨论】:

    【解决方案2】:

    尝试手动更改语言环境。

    使用 SQLite 编辑器(例如 SQLiteStudio)打开您的数据库文件,然后打开 android_metadata 表。如果它不存在,则创建它。 (您可以使用查询编辑器(工具>打开查询编辑器)创建它并复制/粘贴下面的 DDL 代码)

    CREATE TABLE android_metadata ( 
        locale TEXT 
    );
    

    为了插入记录,您可以在查询编辑器中复制/粘贴这一行:

    INSERT INTO android_metadata VALUES ('en_us');
    

    提示:要在 SQLiteStudio 中运行查询,您应该按下工具栏中带有 图标的按钮。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      相关资源
      最近更新 更多