8

我发现了很多关于这个问题的问题,但我无法解决它。我在资产文件夹中有一个 sqlite db:

assets/data/data/{package_name}/databases/mydb.db

我可以在更改一个表结构之前打开数据库并读取数据。我尝试卸载该应用程序并重新安装,但我得到了同样的异常。

我现在能做什么?

提前致谢

编辑

// The Android's default system path of your application database.
private static String DB_PATH = "/data/data/{mypagackename}/databases/";

private static String DB_NAME = "mydb.db";

打开数据库(更改表结构之前,添加一些字段,它不起作用)

public void openDataBase() throws SQLException {

    // Open the database
    String myPath = DB_PATH + DB_NAME;
    myDataBase = SQLiteDatabase.openDatabase(myPath, null,
            SQLiteDatabase.OPEN_READONLY);

}
4

2 回答 2

11

看看这个教程

它解释了如何使用预加载的数据库。基本上您不能直接从资产中使用数据库,您必须先将其复制到内部数据存储中并从那里打开它

于 2012-07-26T14:16:35.540 回答
3

我建议不要使用硬编码DB_PATH(不再在 JB 中工作),而是始终使用 Android 内置 API 方法,

mContext.getDatabasePath(DATABASE_NAME).getPath();
于 2013-10-14T05:25:53.077 回答