【发布时间】: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