2014-03-03 2 views
1

일부 데이터가 들어있는 SQLite 데이터베이스가 있습니다. 나는 테이블 안에 뭔가 이름을 변경하려고하고 내가 할 노력하고있어 방법이 있습니다 :SQLite 데이터베이스에서 요소의 이름을 바꾸려고하면 응용 프로그램이 작동하지 않습니다.

Log.i("TAG", "Trying to rename "+element.getTitle()+" to "+renameTo); 
db.renameName(renameTo, element.getTitle()); 

내 응용 프로그램 충돌 내가 전화 :이 같은이 메서드를 호출하고있어

public void renameName(String newName, String oldName){ 
    db.execSQL("UPDATE "+SQLiteHelper.MUSIC_TABLE_NAME+" SET "+SQLiteHelper.MUSIC_NAME+"='"+newName+"' WHERE "+SQLiteHelper.MUSIC_NAME+"='"+oldName+"'"); 
} 

을 이. 보시다시피 log.i를 호출하여 해당 변수가 null인지 알 수는 있지만 (null 포인터 예외가 발생합니다). 이 문자열 null이 아닌 데이터베이스입니다,

03-03 17:50:39.329: E/AndroidRuntime(21154): FATAL EXCEPTION: main 
03-03 17:50:39.329: E/AndroidRuntime(21154): java.lang.NullPointerException 
03-03 17:50:39.329: E/AndroidRuntime(21154): at com.matejhacin.beautifulvoicerecorder.database.DatabaseHandler.renameName(DatabaseHandler.java:63) 
03-03 17:50:39.329: E/AndroidRuntime(21154): at com.matejhacin.beautifulvoicerecorder.LibraryFragment$2.onClick(LibraryFragment.java:250) 
03-03 17:50:39.329: E/AndroidRuntime(21154): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166) 
03-03 17:50:39.329: E/AndroidRuntime(21154): at android.os.Handler.dispatchMessage(Handler.java:99) 
03-03 17:50:39.329: E/AndroidRuntime(21154): at android.os.Looper.loop(Looper.java:137) 
03-03 17:50:39.329: E/AndroidRuntime(21154): at android.app.ActivityThread.main(ActivityThread.java:5289) 
03-03 17:50:39.329: E/AndroidRuntime(21154): at java.lang.reflect.Method.invokeNative(Native Method) 
03-03 17:50:39.329: E/AndroidRuntime(21154): at java.lang.reflect.Method.invoke(Method.java:525) 
03-03 17:50:39.329: E/AndroidRuntime(21154): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
03-03 17:50:39.329: E/AndroidRuntime(21154): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
03-03 17:50:39.329: E/AndroidRuntime(21154): at dalvik.system.NativeStart.main(Native Method) 
+1

execSQL 전에 데이터베이스를여셨습니까? db가 null이 아니라 문자열이라고 추측합니다. – EarlOfEgo

+0

어리석은 기분이 든다 ... 나는 데이터베이스를 열람하는 것을 completetly 잊어 버렸다. 내가 대답 할 수 있도록 답변을 게시 할 수 있습니다 :) 감사합니다! – Guy

답변

1

처음 사용하기 전에 데이터베이스를 엽니 다

다음은 로그 캣 파일입니다.
발생 :-)

관련 문제