2014-03-06 68 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包含一個路徑分隔符' –