【问题标题】:Debugging Android RuntimeException - Before my code even executes调试 Android RuntimeException - 在我的代码执行之前
【发布时间】:2010-12-01 23:14:32
【问题描述】:

我对 Java 并不陌生,但对 Android 平台并不陌生。我发现平台的缺点之一是对运行时崩溃的有意义的反馈。在应用断点的用户代码中很好,但我在第一次运行时发生崩溃,导致我的项目无法启动,而且我看不到跟踪它的方法。任何人都可以解释一下吗?

DalvikVM[localhost:8626]    
    Thread [<1> main] (Suspended (exception RuntimeException))  
        ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2585  
        ActivityThread.handleLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2679   
        ActivityThread.access$2300(ActivityThread, ActivityThread$ActivityRecord, Intent) line: 125 
        ActivityThread$H.handleMessage(Message) line: 2033  
        ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
        Looper.loop() line: 123 
        ActivityThread.main(String[]) line: 4627    
        Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
        Method.invoke(Object, Object...) line: 521  
        ZygoteInit$MethodAndArgsCaller.run() line: 868  
        ZygoteInit.main(String[]) line: 626 
        NativeStart.main(String[]) line: not available [native method]  
    Thread [<6> Binder Thread #2] (Running) 
    Thread [<5> Binder Thread #1] (Running) 

在模拟器和设备上相同。

我已经看到此类崩溃的报告是由无效 XML 膨胀引起的,因此我已经从我的项目中删除了所有 XML 和资源,几乎一一删除,并且仍然存在相同的错误!我可以应用任何技巧或工具来尝试获取更有意义的错误消息吗?谢谢。

【问题讨论】:

  • 发布一些代码,发布你的清单。你说它甚至在你的代码执行之前就崩溃了。你怎么知道?那么它什么时候崩溃呢?当您考虑运行它时?

标签: android


【解决方案1】:

我找到了在这些情况下收集更多信息的答案。这个页面有一些非常有用的信息:http://www.mail-archive.com/android-developers@googlegroups.com/msg79386.html

通过打开 Eclipse 视图的“调试”部分中的“变量”选项卡,我可以看到有一个名为“e”的值,大概是“异常”的值,其值为“ClassNotFoundException”。通过单击它,我看到了更完整的描述,说明找不到该类。这是我的主要活动,我在前一天深夜重新命名,然后忘记了。 Facepalm希望这些信息对某人有所帮助!

【讨论】:

  • 如果应用程序正在退出,可从 DDMS 或“adb logcat”查看的日志输出将显示完整跟踪。另见stackoverflow.com/questions/2552568/…
  • 我在尝试调试类似的崩溃时遇到了这个问题。我的变量选项卡没有显示任何内容,但可以通过为未捕获的异常设置 Eclipse 断点来找到特定类型的异常。当正在调试的程序由于未捕获的 RuntimeException 而中断时,断点窗口将显示捕获的特定类型的异常,如下所示: AcceptPendingException [Suspend VM]: uncaught。它不一定能解决知道原因的问题,但它是在这个过程中更进一步。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多