2014-02-18 17 views
-1

每當我試圖加載了我的活動我得到一個空指針異常,應用程序崩潰日誌貓指出,這個代碼我不斷收到一個空指針異常,每當我發起一個活動

public Cursor getScores() { 
    return ourDatabase.rawQuery("SELECT * FROM "+DATABASE_TABLE, new String[0]); 
} 

及以下logcat的

02-18 10:12:37.719: E/AndroidRuntime(404): FATAL EXCEPTION: main 
02-18 10:12:37.719: E/AndroidRuntime(404): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.connectfour/com.example.connectfour.ScoreActivity}: java.lang.NullPointerException 
02-18 10:12:37.719: E/AndroidRuntime(404): at  android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
02-18 10:12:37.719: E/AndroidRuntime(404): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
02-18 10:12:37.719: E/AndroidRuntime(404): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
02-18 10:12:37.719: E/AndroidRuntime(404): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
02-18 10:12:37.719: E/AndroidRuntime(404): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-18 10:12:37.719: E/AndroidRuntime(404): at android.os.Looper.loop(Looper.java:123) 
02-18 10:12:37.719: E/AndroidRuntime(404): at android.app.ActivityThread.main(ActivityThread.java:3683) 
02-18 10:12:37.719: E/AndroidRuntime(404): at java.lang.reflect.Method.invokeNative(Native Method) 
02-18 10:12:37.719: E/AndroidRuntime(404): at java.lang.reflect.Method.invoke(Method.java:507) 
02-18 10:12:37.719: E/AndroidRuntime(404): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
02-18 10:12:37.719: E/AndroidRuntime(404): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
02-18 10:12:37.719: E/AndroidRuntime(404): at dalvik.system.NativeStart.main(Native Method) 
02-18 10:12:37.719: E/AndroidRuntime(404): Caused by: java.lang.NullPointerException 
02-18 10:12:37.719: E/AndroidRuntime(404): at com.example.connectfour.Database.getScores(Database.java:57) 
02-18 10:12:37.719: E/AndroidRuntime(404): at com.example.connectfour.ScoreActivity$MyCursorAdapter.<init> (ScoreActivity.java:21) 
02-18 10:12:37.719: E/AndroidRuntime(404): at com.example.connectfour.ScoreActivity.onCreate(ScoreActivity.java:49) 
02-18 10:12:37.719: E/AndroidRuntime(404): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
02-18 10:12:37.719: E/AndroidRuntime(404): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
02-18 10:12:37.719: E/AndroidRuntime(404): 
+0

你'NPE'上'Database.java:57',檢查第57行。 –

+0

Database.java中的第57行是什麼? – InnocentKiller

+0

確保DATABASE_TABLE不爲空並嘗試:'返回ourDatabase.rawQuery(「SELECT * FROM」+ DATABASE_TABLE,null);' – Ayoub

回答

2

這是錯誤的:

return ourDatabase.rawQuery("SELECT * FROM "+DATABASE_TABLE, new String[0]); 

因爲你沒有一個合格參數y,這將是正確的語法

return ourDatabase.rawQuery("SELECT * FROM "+DATABASE_TABLE, null); 

[編輯(1)]

但只有當你打開你的數據庫,第一個(首先調用getScores前指())。

[編輯(2)]

喜歡的東西:

SQLiteDatabase ourDatabase = getApplicationContext().openOrCreateDatabase(DB_NAME, Context.MODE_PRIVATE, null); 
+0

仍然不工作02-18 12:47:22.505:D/dalvikvm(333):GC_EXTERNAL_ALLOC釋放50K,53%免費2553K/5379K,外部2730K/3266K,暫停142ms 02 -18 12:47:23.486:D/dalvikvm(333):GC_EXTERNAL_ALLOC釋放1K,53%空閒2552K/5379K,外部6764K/8447K,暫停45ms 02-18 12:47:33.555:D/dalvikvm GC_EXTERNAL_ALLOC釋放了11K,52%免費2583K/5379K,外部8695K/10350K,暫停46ms – user3322960

+0

你是什麼意思首先打開我的數據庫? – user3322960

+0

我可以在那裏放置那條線? \t \t \t SQLiteDatabase ourDatabase = DBHelper.openOrCreateDatabase(DATABASE_NAME,Context.MODE_PRIVATE,null); – user3322960

相關問題