2014-02-18 22 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

相关问题