【问题标题】:How to get the specific line of code that threw an error如何获取引发错误的特定代码行
【发布时间】:2012-07-01 00:25:57
【问题描述】:

当应用程序启动并关闭时,我得到了 java.lang.NullPointerException。来自模拟器的错误是“不幸的是,appname 已停止”。它工作正常,直到我编写了一堆新代码并更改了清单。希望它不是清单,但我的问题是,我怎样才能找出问题所在的代码行?跟踪转储对我来说没有任何意义,即使它很冗长,拥有 ...11 更多也不能让我看到整个事情。

我真的不知道那个错误是什么意思。我已经搜索过它,但似乎有一个它可能意味着的东西的列表。我已经尝试过 Project>Clean,我已经尝试再次弄乱清单,但我仍然得到错误。我已经检查/未检查外部库。刚刚做了人们建议为其他人做同样错误的事情。所以我真的很想知道,是什么线触发了它?

如果有帮助,这里是输出:

06-29 08:37:23.680: E/AndroidRuntime(1225): FATAL EXCEPTION: main
06-29 08:37:23.680: E/AndroidRuntime(1225): java.lang.RuntimeException: Unable to    instantiate activity      ComponentInfo{com.upliftly.android/com.upliftly.android.UpliftlyActivity}: java.lang.NullPointerException
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1879)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.app.ActivityThread.access$600(ActivityThread.java:122)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.os.Looper.loop(Looper.java:137)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.app.ActivityThread.main(ActivityThread.java:4340)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at java.lang.reflect.Method.invokeNative(Native Method)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at java.lang.reflect.Method.invoke(Method.java:511)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at dalvik.system.NativeStart.main(Native Method)
06-29 08:37:23.680: E/AndroidRuntime(1225): Caused by: java.lang.NullPointerException
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:101)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at java.lang.Class.newInstanceImpl(Native Method)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at java.lang.Class.newInstance(Class.java:1319)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1870)
06-29 08:37:23.680: E/AndroidRuntime(1225):     ... 11 more

【问题讨论】:

    标签: android error-handling android-emulator


    【解决方案1】:

    查找应用的包名(我猜是com.uplifty.android):

    at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19)
    

    【讨论】:

      【解决方案2】:

      通常,当您看到类似于您发布的堆栈跟踪时,您应该关注最后一行之后的行

      Caused by: 
      

      线。之后,检测具有您的包名称的行,并且(在大多数情况下)导致代码异常的行。在您发布的堆栈跟踪中,该行是

      at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19)
      

      【讨论】:

      • 谢谢,我无法理解 Logcat 试图告诉我的内容。现在我知道了,这帮助我隔离了错误并解决了问题。
      【解决方案3】:

      在 logcat 中,它会给出包名称和您的活动名称 行号。然后你需要观察那个特定的行 有哪些可用的变量,那么您需要检查这些变量 及其对应的 xml id。所以在这个帮助下你可以避免 这个错误。我认为在您发布的 logcat 中

      at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19)
      

      上面的线似乎是你的活动线,你可以 检查并避免错误。

      【讨论】:

        【解决方案4】:

        就像其中两个答案所说: 像这个例子一样寻找你的包名:

        at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19)
        

        括号告诉您错误发生在哪个 Java 文件和哪一行。所以在这种情况下 UpliftlyActivity.java 第 19 行。

        虽然您的清单或 xml 文件中的错误不会显示错误所在的文件或行号,因此很难找到它们。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-03-27
          • 2015-01-10
          • 2018-01-30
          • 2012-11-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多