【问题标题】:With Eclipse and Android, the IDE never shows the value of an exception对于 Eclipse 和 Android,IDE 永远不会显示异常的值
【发布时间】:2011-01-11 00:12:03
【问题描述】:

在带有 Android SDK 和 IDE 插件的 Eclipse 上,当我调试带有 SecurityException 的应用程序时,我只在日志中看到异常本身,但 IDE 从未告诉我它的详细信息。例如,LogCat 可能有:

01-10 17:03:35.959: ERROR/System(58): java.lang.SecurityException
01-10 17:03:35.959: ERROR/System(58):     at android.os.BinderProxy.transact(Native Method)
01-10 17:03:35.959: ERROR/System(58):     at android.os.ServiceManagerProxy.addService(ServiceManagerNative.java:146)
01-10 17:03:35.959: ERROR/System(58):     at android.os.ServiceManager.addService(ServiceManager.java:72)
01-10 17:03:35.959: ERROR/System(58):     at com.android.server.ServerThread.run(SystemServer.java:184)

但是在此输出中您看不到 (1) 我的代码中的哪一行导致了 SecurityException,或者 (2) 异常详细信息——特别是缺少什么权限。我相信这应该在 detailMessage 上。

在 IDE 的调试器中,一个线程因 RuntimeException 而被挂起,并且变量中包含另一个 NullPointerException,这似乎与记录的 SecurityException 无关。

如何让 Eclipse/Android SDK 停止在实际导致抛出 SecurityException 的代码上,以及如何访问该异常的详细信息?我是否在 Eclipse 中遗漏了一些非常明显的东西?

【问题讨论】:

    标签: android eclipse debugging android-emulator


    【解决方案1】:

    您是否尝试添加 Java 异常断点?

    在 Debug 透视图中,将“Breakpoints”视图带到顶部,单击“J!”图标并键入“SecurityException”。这应该会在引发异常的确切位置打开调试器。

    【讨论】:

      【解决方案2】:

      切换到 DDMS 视图,您可以看到 LogCat。

      您是否尝试过使用 try/catch 块自己处理异常?

      【讨论】:

      • 我刚刚发布的输出来自 LogCat。
      • 如果我知道哪一行代码导致异常抛出,我会添加一个 try/catch 块。
      猜你喜欢
      • 2020-01-01
      • 1970-01-01
      • 2015-12-02
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      相关资源
      最近更新 更多