【问题标题】:How to make Eclipse tell me on which line an error occurred?如何让 Eclipse 告诉我在哪一行发生了错误?
【发布时间】:2013-10-09 08:07:56
【问题描述】:

来自 Python 我现在正在尝试创建一个 Android 应用程序。在这种情况下,我有时会遇到错误,例如 NullPointerException。问题在于,与 Python 不同,Eclipse 不会告诉我发生错误的行号。它只是给了我这样的东西:

10-09 10:03:59.379: E/AndroidRuntime(3289): java.lang.RuntimeException: Unable to resume activity {com.example.android/com.example.android.ui.MyActivity}: java.lang.NullPointerException

有没有办法让 Eclipse 告诉我发生 NullPointerException 的行?

=== 编辑=== 啊,我现在更详细地查看了完整的错误(如下),在那里我看到了这一行:om.example.android.ui.MyActivity.onResume(MyActivity.java:208),这确实是它发生的那一行.

那么让我们这样提出我的问题吧。我可以只显示我自己编写的代码中的错误,而不显示所有其他 mumbo-jumbo 中的错误吗?

10-09 10:08:49.759: E/AndroidRuntime(3502): java.lang.RuntimeException: Unable to resume activity {com.example.android/com.example.android.ui.MyActivity}: java.lang.NullPointerException
10-09 10:08:49.759: E/AndroidRuntime(3502):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2790)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2819)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2266)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at android.os.Looper.loop(Looper.java:137)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at android.app.ActivityThread.main(ActivityThread.java:5103)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at java.lang.reflect.Method.invokeNative(Native Method)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at java.lang.reflect.Method.invoke(Method.java:525)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at dalvik.system.NativeStart.main(Native Method)
10-09 10:08:49.759: E/AndroidRuntime(3502): Caused by: java.lang.NullPointerException
10-09 10:08:49.759: E/AndroidRuntime(3502):     at com.example.android.ui.widget.AmountFragment.setAmount(AmountFragment.java:79)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at com.example.android.ui.MyActivity.onResume(MyActivity.java:208)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1192)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at android.app.Activity.performResume(Activity.java:5211)
10-09 10:08:49.759: E/AndroidRuntime(3502):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2780)
10-09 10:08:49.759: E/AndroidRuntime(3502):     ... 12 more

【问题讨论】:

  • 请发布您记录异常的方式。而且,这是整个堆栈跟踪吗?
  • 您可能正在捕获异常而不是打印堆栈跟踪。
  • 我什么都没做。例如,当我尝试记录为空的内容时,我只是看到 LogCat 中发生了错误。
  • 查看这一行旁边的日志行,它们通常包含引发异常的位置。
  • 只需双击对应于第一个错误行的日志行。在这里双击“引起:....”下面的行

标签: java android eclipse exception nullpointerexception


【解决方案1】:

错误位于AmountFragment.Java 的第 79 行。该行的句子是试图对一个空实例做某事。

DDMS 透视图为您提供了许多调试透视图所没有的信息。从 ddms 的角度来看,您可以查看线程和用于每个线程的内存、每个应用程序的内存、查看应用程序和模拟器堆、分配跟踪器(在这里您可以执行异步任务,即),logcat 比调试控制台要好得多。最有用的功能之一是方法分析,您可以在其中逐步跟踪您的应用执行的操作。

也许这个视频对你调试安卓应用有帮助:How To Debug Android Applications in Eclipse

【讨论】:

  • 嗯,你说得对,我需要了解更多关于整体调试的信息。它似乎与 Python 中的有点不同(并且更难).. :) 感谢您的链接。我马上就看!
【解决方案2】:

这一行告诉你:

                                                 Caused by: java.lang.NullPointerException
 10-09 10:08:49.759: E/AndroidRuntime(3502):     at com.example.android.ui.widget.AmountFragment.setAmount(AmountFragment.java:79)
 10-09 10:08:49.759: E/AndroidRuntime(3502):     at com.example.android.ui.MyActivity.onResume(MyActivity.java:208)

【讨论】:

    猜你喜欢
    • 2020-08-08
    • 2011-03-09
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多