【问题标题】:Breakpoints not getting hit in Android StudioAndroid Studio 中没有命中断点
【发布时间】:2014-12-12 22:36:39
【问题描述】:

我使用的是 Windows 7,最近从 Eclipse 切换到了 Android Studio。我现在无法调试。

运行 Android Studio 0.8.6,我设置了一个完全默认的安装,我使用新项目向导创建了一个针对 ICS SDK 的默认空项目。然后我在onCreate中放了一个断点,点击调试按钮运行。

附加的调试器,我可以在调试器窗口中看到“已连接到目标 VM”消息。

我知道代码正在执行,因为我正在更新 UI 中的一些文本以显示这一点。

我尝试在很多地方设置断点,但没有一个被命中。

我在这里拉头发,因为我看不出我做错了什么。我是 gradle 新手,所以我认为 gradle 中可能有一些我应该更改的设置,但使用向导构建的绝对标准项目肯定会让我遇到断点?

我注意到的一件事是,在我的 build.gradle 文件中没有提到调试构建,只有一个发布。我想知道这可能是问题吗?

buildTypes {
    release {
        runProguard false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

注意。我在自己的设备和模拟器上都试过了

更新:

我更改了“查看断点”选项中的设置以打开“Java 异常断点”,但仅针对未捕获的异常。然后,在 onCreate 结束时,我故意导致 NullPointerException。当我现在在调试中运行时,我仍然没有点击我的实际代码,也没有在我的源代码上看到代码中断,但程序确实暂停了。我知道是我的 NullPointerException 导致了这种情况,因为当我删除它时,我可以看到代码继续运行并且没有中断。

当我的代码中断调试窗口时,显示我在“主”线程中,在一个名为“performLaunchActivity”的函数中。我看不到比这更多的信息。因此,大概我正在通过调用 performLaunchActivity 的任何级别的代码进行调试,但我的源代码被视为无法单步执行?

【问题讨论】:

  • 在工作室中右键单击根文件夹 -> 打开模块设置 -> 构建类型。您是否在列表中添加了调试版本和发布版本?
  • 你的 JDK 版本是多少?
  • @Lenix:就是这样!!你救了我!!这是因为,虽然我的 JDK 版本是最新的,但仍然存在旧的 Java 版本。我已经删除了我计算机上的所有 Java 版本并进行了全新安装,现在一切正常!!!
  • 很高兴我能帮上忙。请标记我的答案已接受以供将来参考:)
  • 您可以尝试将调试类型设置为 Java Only。阅读stackoverflow.com/a/63171238/3922207

标签: android intellij-idea gradle android-studio android-gradle-plugin


【解决方案1】:

gradle 部分完全没问题。我得到了相同的代码,他的调试器工作正常。 你是如何设置断点的?您只需单击代码窗口的最左侧,就会出现一个红球。

参考:https://developer.android.com/sdk/installing/studio-debug.html

【讨论】:

  • 是的。断点看起来很好。我通过单击“装订线”或使用 ctrl f8 来设置它。如果我运行 -> 查看断点,我可以确定它在那里并设置为暂停所有
  • 是的。我已经尝试过,但仍然没有,除了它会标记一个警告,告诉我我不应该明确定义它。
  • 在上面的链接中尝试@fasteque 回答
  • 已经完成了该问题中的步骤。我知道亚行工作正常并且连接良好。我什至尝试构建我的调试 apk,通过 ADB 安装它,然后远程连接,但这也失败了
【解决方案2】:

确保您的 JDK 是最新的,并且您的系统仅包含一个 JDK。

【讨论】:

  • 它必须是 最新的 JDK吗?我正在使用 Oracle JDK 7 update 71,并从我的 ubuntu 14.04 系统中删除了所有其他 JDK。但是 Android Studio 仍然不能可靠地让我调试我的应用程序。像 andrew 一样,我看到“已连接到目标 VM”,但我无法进入或越过代码或在断点处停止。我说“可靠”是因为有时它确实有效,但 10 次中有 8 次无效,我不知道为什么 - 非常令人沮丧!请问有什么问题吗?
【解决方案3】:

尝试在buildTypes - debug 部分的文件\app\build.gradle 中删除行minifyEnabled true。或使用此屏幕并将 Minify Enabled 设置为 false

【讨论】:

  • 在我的 proguard-rules.pro 文件中添加了几行废话之后,这一直是问题所在。谢谢。
猜你喜欢
  • 2015-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-12
  • 2012-01-06
  • 2012-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多