【发布时间】:2014-11-07 14:41:26
【问题描述】:
我现在超级迷茫!我正在制作我的第一个 android 应用程序,当我只有一个活动时,我没有任何错误。但是在我添加了第二个活动之后,我得到了一个 FATAL EXCEPTION:main。
这是我的堆栈跟踪:
09-13 11:08:12.106: E/AndroidRuntime(14008): FATAL EXCEPTION: main
09-13 11:08:12.106: E/AndroidRuntime(14008): Process: com.bignerdranch.android.geoquiz, PID: 14008
09-13 11:08:12.106: E/AndroidRuntime(14008): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bignerdranch.android.geoquiz/com.bignerdranch.android.geoquiz.QuizActivity}:java.lang.NullPointerException
09-13 11:08:12.106: E/AndroidRuntime(14008): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2413)
09-13 11:08:12.106: E/AndroidRuntime(14008): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
09-13 11:08:12.106: E/AndroidRuntime(14008): at android.app.ActivityThread.access$900(ActivityThread.java:175)
09-13 11:08:12.106: E/AndroidRuntime(14008): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
09-13 11:08:12.106: E/AndroidRuntime(14008): at android.os.Handler.dispatchMessage(Handler.java:102)
09-13 11:08:12.106: E/AndroidRuntime(14008): at android.os.Looper.loop(Looper.java:146)
09-13 11:08:12.106: E/AndroidRuntime(14008): at android.app.ActivityThread.main(ActivityThread.java:5602)
09-13 11:08:12.106: E/AndroidRuntime(14008): at java.lang.reflect.Method.invokeNative(Native Method)
09-13 11:08:12.106: E/AndroidRuntime(14008): at java.lang.reflect.Method.invoke(Method.java:515)
09-13 11:08:12.106: E/AndroidRuntime(14008): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
09-13 11:08:12.106: E/AndroidRuntime(14008): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
09-13 11:08:12.106: E/AndroidRuntime(14008): at dalvik.system.NativeStart.main(Native Method)
09-13 11:08:12.106: E/AndroidRuntime(14008): Caused by: java.lang.NullPointerException
09-13 11:08:12.106: E/AndroidRuntime(14008): at com.bignerdranch.android.geoquiz.QuizActivity.updateQuestion(QuizActivity.java:40)
09-13 11:08:12.106: E/AndroidRuntime(14008): at com.bignerdranch.android.geoquiz.QuizActivity.onCreate(QuizActivity.java:70)
09-13 11:08:12.106: E/AndroidRuntime(14008): at android.app.Activity.performCreate(Activity.java:5451)
09-13 11:08:12.106: E/AndroidRuntime(14008): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
09-13 11:08:12.106: E/AndroidRuntime(14008): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
09-13 11:08:12.106: E/AndroidRuntime(14008): ... 11 more
然后,我转到 QuizActivity.java 中的第 70 行,注释掉一段代码,运行它并得到这个错误:
Warning: Activity not started, its current task has been brought to the front
然后我取消注释第 70 行的代码部分,重新运行它,在我的模拟器上点击后面的空格,我的程序就在那里,运行得很好!我实际上没有改变我的代码,当我在两个不同的时间运行我的程序时,我得到了两个完全不同的结果!我想解释一下为什么会发生这种情况!
这是我最初在第 70 行注释掉的代码:
mQuestionTextView = (TextView)findViewById(R.id.question_text_view);
updateQuestion();
这是第 40 行的 updateQuestion():
private void updateQuestion() {
int question = mQuestionBank[mCurrentIndex].getQuestion();
mQuestionTextView.setText(question);
}
任何帮助将不胜感激!
编辑:当我收到 FATAL EXCEPTION:main 错误时,我确实清理、构建并重新运行了程序,但我仍然不断收到消息。
【问题讨论】:
-
Warning: Activity not started, its current task has been brought to the front不是错误 - 这是一个警告 ;) 执行清理、重建并再次运行应用程序。 -
我认为您在这里确实有 2 个问题,1 是您对未开始的活动警告感到困惑,第二是您的空指针异常需要帮助。我尝试在下面回答 1,一旦您对警告感到困惑,我认为您应该输入第二个问题,显示更多代码来询问您的 NPE
标签: java android eclipse nullpointerexception fatal-error