我的问题是在我的Android应用程序中使用现有的sqlite-database。 为了管理它,我使用了一篇着名的文章来描述我的任务 - http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications
当这个应用程序启动时,我收到错误:
08-17 06:35:18.416: ERROR/Database(286): sqlite3_open_v2("data/data/com.jeston.existed.sqlite/databases/android_test_db.db", &handle, 1, NULL) failed
08-17 06:35:18.437: ERROR/AndroidRuntime(286): Uncaught handler: thread main exiting due to uncaught exception
08-17 06:35:18.457: ERROR/AndroidRuntime(286): android.database.sqlite.SQLiteException: unable to open database file
我怀疑我使用错误的路径来访问mydatabase.I将我的android_test_db文件放到assets文件夹中,并且如博客中所写,给出了
private final static String DB_PATH = "data/data/com.jeston.existed.sqlite/databases/";
private final static String DB_NAME = "android_test_db.db";
所以,我的问题是这些方法是正确的还是没有?或者可能是,我的方式是错误的?
感谢大家。
答案 0 :(得分:2)
db名称扩展名必须与原样完全相同。 而且,我认为你的主要问题是你指定了错误的包。它必须是根包。试试这个:
private final static String DB_PATH = "data/data/com.jeston.existed/databases/";
答案 1 :(得分:0)
openDataBase方法应如下所示:
public void openDataBase() throws SQLException{
//Open the database
String myPath = DB_PATH + DB_NAME;
myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
}
使用SQLiteDatabase.NO_LOCALIZED_COLLATORS
代替SQLiteDatabase.OPEN_READONLY