【问题标题】:Android Room database file is invalid file format in DB browserAndroid Room 数据库文件在 DB 浏览器中是无效的文件格式
【发布时间】:2019-10-30 21:21:48
【问题描述】:

我要在模拟器中data/data/myPackage 下载这三个关于我的应用程序数据库的文件:

但是当我将它导入数据库浏览器时,我遇到了这个错误:

我认为问题在于权限(-rw------),因为当我导入具有此(-rw-rw----) 的其他数据库时,数据库浏览器可以打开它。

那么如何在数据库浏览器中更改权限或打开我的房间数据库?

这是我的房间配置:

@Database(entities = {Authentication.class}, version = 1)
public abstract class InsensitiveDatabase extends RoomDatabase {

    private static InsensitiveDatabase INSTANCE;

    public abstract AuthenticationDao authenticationDao();

    public static InsensitiveDatabase getInsensitiveDatabase(Context context) {
        if (INSTANCE == null) {
            Editable editable = new SpannableStringBuilder("1234");
            SafeHelperFactory factory = SafeHelperFactory.fromUser(editable);
            INSTANCE = Room.databaseBuilder(context, InsensitiveDatabase.class, "insensitive.db")
                    .openHelperFactory(factory)
                    .build();
        }
        return INSTANCE;
    }
}

【问题讨论】:

  • 您在 SqliteBrowser 中打开哪个文件?
  • @m3g4tr0n,第一个,但我都试过了
  • “我如何更改权限”——在尝试在某些外部工具中使用它们之前,您需要将文件复制到您的开发机器上。 “在数据库浏览器中打开我的房间数据库?” -- 我不知道该工具是否支持 SQLCipher 数据库。
  • Encrypted DatabasesDB Browser for SQLite 可以在 Mac OSX 和 Windows 上下载 SQLCipher 支持,或者如果你自己编译它,你可以在 Linux 上获得支持。但接着说你只能加密一个现有的数据库,所以如果你想要一个新的加密数据库,你首先需要创建一个新的数据库文件然后加密它。所以想知道它是否是一个自包含的所以可以' t 打开在别处加密的数据库。
  • "你的意思是DB浏览器不支持SQLCipher数据库?" -- 正如我所写,我不知道该工具是否支持 SQLCipher 数据库。

标签: java android database sqlite android-room


【解决方案1】:

我发现在 Linux 中开发的 DB 浏览器无法打开我的加密房间数据库,因为我在 MAC OS 中打开它。

您可以在我打开的this issue 中查看更多详细信息,希望对您的问题有用

【讨论】:

    猜你喜欢
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    相关资源
    最近更新 更多