我试图从我的应用程序中的资产文件夹使用数据库,但我似乎无法引用它。Android中的SQLIte来自Assets文件夹
我已经得到了结构设置,如:
public static String DBName = "myDB.db";
public static String DBLocation = "/data/data/com.yes.auntsally/databases/";
public static String DBFullLocation = DBLocation + DBName;
然后美其名曰:
public static void getDbFile() {
if (dbFile == null) {
dbFile = new File(Global.DBFullLocation);
}
}
public static void openDb() {
if (db == null) {
getDbFile();
db = SQLiteDatabase.openOrCreateDatabase(dbFile, null);
setDbOpen(true);
}
if (!db.isOpen()) {
getDbFile();
db = SQLiteDatabase.openOrCreateDatabase(dbFile, null);
setDbOpen(true);
}
}
,但我得到的错误:
04-02 11:51:31.375: E/SQLiteLog(4024): (14) cannot open file at line 30241 of [00bb9c9ce4]
04-02 11:51:31.375: E/SQLiteLog(4024): (14) os_unix.c:30241: (2) open(/data/data/com.yes.auntsally/databases/myDB.db) -
04-02 11:51:31.390: E/SQLiteDatabase(4024): Failed to open database '/data/data/com.yes.auntsally/databases/myDB.db'.
04-02 11:51:31.390: E/SQLiteDatabase(4024): android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
不要硬编码的文件系统路径,因为他们可以的Android版本和厂商之间变化。您是否已将数据库从'/ assets'文件夹复制到“真实”应用程序文件夹? –