我发现了很多关于这个问题的问题,但我无法修复它。 我在资源文件夹中有一个sqlite数据库:
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);
}
答案 0 :(得分:10)
它解释了如何使用预加载的数据库。基本上你不能从资产中使用数据库,你必须先将其复制到内部数据存储中并从那里打开它
答案 1 :(得分:3)
而不是硬编码DB_PATH
(不再适用于JB),我建议总是使用Android内置API方法,
mContext.getDatabasePath(DATABASE_NAME).getPath();