안드로이드 개발 질문/답변
(글 수 45,052)
우선 질문 이전에 상황을 좀 설명드려야 할 필요성이 있어서.
제가 안드로이드 앱을 개발하고 있는데 집하고 연구실을 왔다갔다 하면서 개발하고 있습니다. 그래서 한쪽에서 개발하고 난 후 해당 폴더를 서버에 넣어두었다가 다른 장소에서 내려받아 다시 개발하는 식으로 개발을 하고 있습니다.
상황은 이렇구요. 일단 연구실에서는 아무런 문제없이 잘 동작합니다.
그런데 집에 해당 코드를 내려받아서 아무것도 수정하지 않고 실행시켜 봤는데 sqlite 부분에서 다음과 같은 runtime error가 발생합니다.
01-26 08:05:55.152: ERROR/AndroidRuntime(361): android.database.sqlite.SQLiteException: Can't upgrade read-only database from version 0 to 1: /data/data/ropas.android/databases/dictionary
error 내용을 봐서는 db 업그레이드를 못하고 있다 라고 하는 걸로 보입니다. 그리고 저 에러가 발생한 코드는 다음과 같습니다.(한 줄이라서 그냥 쓰겠습니다.)
db = mHelper.getReadableDatabase();
mHelper는 sqlite db class입니다. 해당 class의 onUpgrade 메소드는 진짜 아무 내용 없이 저렇게 밖에 없구요.
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE dictionary");
onCreate(db);
}
저 코드를 원래 작성한 연구실에서 돌렸을 때는 아무런 문제가 없었습니다. 그러나 해당 폴더를 그대로 옮겨와서 집에서 돌려봤을 때는 저렇게 runtime 에러가 발생합니다. 혹시 원인을 아시거나 같은 현상을 겪어보신 분이 있으시면 조언 좀 부탁드립니다.




db = mHelper.getWritableDatabase() 로 수정하세요.