2014-03-03 66 views
1

我的應用程序中有一個SQLite數據庫,它包含一些數據。我試圖重命名錶,裏面的東西,這就是我正在努力做到這一點:嘗試重命名SQLite數據庫中的元素數據庫崩潰應用程序

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("TAG", "Trying to rename "+element.getTitle()+" to "+renameTo); 
db.renameName(renameTo, element.getTitle()); 

我的應用程序崩潰時我打電話這個。正如你所看到的,我調用log.i來查看這些變量是否爲空,但它們不是(我得到空指針異常)。

這裏的logcat的文件:

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是空的,而不是字符串。 – EarlOfEgo

+0

呃我覺得很蠢......我完全忘了打開數據庫。您可以發佈答案,以便我可以接受它:)謝謝! – Guy

回答

1

首先使用它之前,打開您的數據庫,它是爲空,而不是字符串的數據庫。
發生:-)

相關問題