【问题标题】:Weird exception in calling a method in Android在Android中调用方法的奇怪异常
【发布时间】:2015-03-10 09:28:07
【问题描述】:

我遇到了这个跟踪异常:

java.lang.NullPointerException
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2247)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2297)
    at android.app.ActivityThread.access$700(ActivityThread.java:152)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1282)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5328)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
    at com.something.activity.SomeActivity.onCreate(SomeActivity.java:53)
    at android.app.Activity.performCreate(Activity.java:5250)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
    ... 11 more

在给定活动的第 53 行,我只是调用了 SomeActivity 的一个方法,它是这样的:

50 @Override
51 protected void onCreate(Bundle savedInstanceState){
52     ...
53     populateItems();
54     ...
55 }

如何在方法的调用行获得NullPointerException?我的日志记者是喝醉了还是怎么了?顺便说一句,我很确定代码的行以及得到异常的版本和给定的代码是否完全相同。

【问题讨论】:

  • 是与异常相关的完整堆栈跟踪吗?
  • 把你的完整的 oncreate 方法
  • 输入你的populateItems()方法
  • 您没有发布足够的信息让我们找出问题所在,但从表面上看,您的源代码和堆栈跟踪似乎不同步。
  • “顺便说一句,我很确定代码的行以及得到异常的版本和给定的代码是否完全相同。” - 很肯定是不够好。

标签: java android android-activity nullpointerexception


【解决方案1】:

你不能,方法不是字段。很可能您似乎编译了代码,运行了它,然后更改了一些代码。那么stacktracke会导致你出错。

【讨论】:

    【解决方案2】:

    输入完整的 onCreate 方法

    检查这些:
    - 在 populateItems()
    之前调用 setContentView(layout) -in findViewById(item) , item 必须在它的容器布局中

    【讨论】:

      【解决方案3】:

      确保您在setContentView(R.layout.main_layout) 中使用的main_layout 是正确的布局,应该包括您在populateItems() 中使用的所有项目/视图,然后您可以通过findViewById(R.id.item_id) 获取populateItems() 中的每个项目,否则你会得到NullPointerException

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多