【问题标题】:Android sqlite jdbc can't connect because of Read-only file system由于只读文件系统,Android sqlite jdbc 无法连接
【发布时间】:2018-05-28 15:47:43
【问题描述】:

我正在尝试打开一个 sqlite jdbc 连接,但我不断收到异常

java.sql.SQLException:打开数据库: '\data\data\com.lppapp.ioi.lpp\databases\lppDB.db':只读文件 系统

在尝试获取 jdbc 连接之前,我将数据库复制到内部存储中并尝试从那里访问它。我正在使用此代码进行连接:

public Connection connect() {
    String url = "jdbc:sqlite:\\data\\data\\com.lppapp.ioi.lpp\\databases\\lppDB.db";
    Connection conn = null;

    try {
        Properties config = new Properties();
        config.setProperty("open_mode", "1");
        //TODO: can't open db (read-only file system) even though directory has a+rw permissions
        conn = DriverManager.getConnection(url, config);

        System.out.println("Connection successful.");
    } catch (SQLException e) {
        System.out.println("Connection failed.");
        System.out.println(e.getMessage());
    }

    return conn;
}

我使用的是 Android 模拟器,并且检查了数据库目录的权限。

我已经尝试了在网络上找到的所有解决方案,但没有任何帮助。

【问题讨论】:

  • 你为什么使用 JDBC,而不是 Android 的原生 SQLite API 或围绕它的东西(例如,Room)?为什么要使用反斜杠?

标签: java android database sqlite jdbc


【解决方案1】:

我决定使用 CommonsWare 提到的 Android 的原生 SQLite API。

谢谢!

【讨论】:

    猜你喜欢
    • 2018-08-31
    • 2019-05-21
    • 1970-01-01
    • 2012-06-03
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多