2014-03-06 29 views
1

我有这样的代码:如何更改getWritableDatabase()指向路径?

// 2. get reference to writable DB 
SQLiteDatabase db = this.getWritableDatabase(); 
Cursor cursor = db.rawQuery(query, null); 

,我看到db是

SQLiteDatabase: /data/data/com.myApp/databases/user.db

但是我的应用程序的另一部分写到这里:

adb pull data/data/com.myApp/user.db

(我验证用adb pull拉动)

我如何更改SQLiteDatabase: /data/data/com.myApp/databases/user.db的路径)?

回答

4

/data/data/com.myApp/databases/user.db是数据库的正确位置。考虑修复你期望的代码部分为data/data/com.myApp/user.db

要更改路径,您可以提供完整路径到SQLiteDatabaseHelper构造函数,而不仅仅是数据库名称user.db

+0

是什么? 'super(context,/ data/data/com.myApp/databases/user.db,null,DATABASE_VERSION);' –

+2

是的,用'quotes“'。但不要以为路径总是这样。有些设备不是。最好不要指定路径;第二个最好使用'context.getApplicationInfo()。dataDir' – laalto

+0

我得到这个错误:'java.lang.IllegalArgumentException:文件data/data/com.MyApp/user.db包含一个路径分隔符' –