-2

我是安卓新手。我收到错误java.lang.NullPointerException并且java.lang.RuntimeException应用程序强制关闭。

10-18 06:04:12.676: E/AndroidRuntime(340): FATAL EXCEPTION: main
10-18 06:04:12.676: E/AndroidRuntime(340): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.md.ExpertRemote/com.md.ExpertRemote.first.ExpertRemote}: java.lang.NullPointerException
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.os.Handler.dispatchMessage(Handler.java:99)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.os.Looper.loop(Looper.java:123)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.app.ActivityThread.main(ActivityThread.java:4627)
10-18 06:04:12.676: E/AndroidRuntime(340):  at java.lang.reflect.Method.invokeNative(Native Method)
10-18 06:04:12.676: E/AndroidRuntime(340):  at java.lang.reflect.Method.invoke(Method.java:521)
10-18 06:04:12.676: E/AndroidRuntime(340):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-18 06:04:12.676: E/AndroidRuntime(340):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-18 06:04:12.676: E/AndroidRuntime(340):  at dalvik.system.NativeStart.main(Native Method)
10-18 06:04:12.676: E/AndroidRuntime(340): Caused by: java.lang.NullPointerException
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.view.ViewGroup.addViewInner(ViewGroup.java:1969)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.view.ViewGroup.addView(ViewGroup.java:1865)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.view.ViewGroup.addView(ViewGroup.java:1845)
10-18 06:04:12.676: E/AndroidRuntime(340):  at com.md.ExpertRemote.first.ExpertRemote.onCreate(ExpertRemote.java:286)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
10-18 06:04:12.676: E/AndroidRuntime(340):  ... 11 more
4

1 回答 1

8

给定堆栈跟踪,它看起来像这样一行:

at com.md.ExpertRemote.first.ExpertRemote.onCreate(ExpertRemote.java:286)

... 可能正在调用ViewGroup.addView()并传递一个null值作为参数之一。该参数仅在几个级别下得到验证,因此堆栈跟踪的额外行。

查看 ExpertRemote.java 中的第 286 行,找出其中一个值可能为空的原因。(根据我对此类问题的经验,这通常是因为您使用了错误的 ID 来查找对象。)不幸的是,如果没有看到代码,我们无法提供比这更具体的帮助。

在三个方面将其用作学习经验很重要:

  • 了解如何阅读堆栈跟踪。一个非常简单的第一步是找到提到您的代码的第一个位置。
  • 了解如何使用调试器。虽然我自己没有做过任何 Android 开发,但我希望调试器中运行时,异常会触发执行在有问题的地方暂停。即使没有,使用调试器也可以帮助您验证对问题的任何诊断(例如检查参数值是否真的为空)
  • 了解如何发布更好的问题:想想如果试图解决问题,你需要知道什么。当然,这样做也应该首先帮助您解决自己的问题......
于 2012-10-18T06:20:52.240 回答