2014-03-06 2 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으로 당기기)

의 경로는 어떻게 변경합니까?

답변

4

/data/data/com.myApp/databases/user.db은 데이터베이스의 올바른 위치입니다. 코드 부분에 data/data/com.myApp/user.db이 될 것으로 예상되는 부분을 고치는 것을 고려하십시오.

경로를 변경하려면 데이터베이스 이름 user.db 대신 SQLiteDatabaseHelper 생성자에 대한 전체 경로를 제공 할 수 있습니다.

+0

이 마음에 드십니까? 'super (context, /data/data/com.myApp/databases/user.db, null, DATABASE_VERSION); ' –

+2

예,' "따옴표". 그러나 그 길은 항상 그렇게 생각하지 마십시오. 그렇지 않은 장치가 있습니다. 전혀 경로를 지정하지 않는 것이 가장 좋습니다. context.getApplicationInfo(). dataDir' – laalto

+0

을 사용하는 것이 가장 좋습니다.이 오류가 발생합니다 :'java.lang.IllegalArgumentException : 파일 data/data/com.MyApp/user.db에 경로 구분자가 있습니다' –

관련 문제