我試圖從我的應用程序中的資產文件夾使用數據庫,但我似乎無法引用它。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'文件夾複製到「真實」應用程序文件夾? –