我正在使用Windows 7并且最近已从Eclipse切换到Android Studio。我现在无法调试。
运行Android Studio 0.8.6,我设置了一个完全默认的安装,我使用新项目向导创建了一个默认的空项目,目标是ICS SDK。然后我在onCreate中放置一个断点,单击调试按钮并运行。
连接调试器,因为我可以在调试器窗口中看到“连接到目标VM”消息。
我知道代码正在执行,因为我正在更新UI中的一些文本以显示此内容。
我曾尝试在许多地方设置断点,但没有一个被击中。
我把头发拉到这里,因为我看不出我做错了什么。我是新手,因此我认为gradle中可能存在一些我应该更改的设置,但是使用向导构建的绝对标准项目肯定会让我遇到断点?
我注意到的一件事是在我的build.gradle文件中没有提到调试版本,只提供了一个版本。我想知道这可能是问题吗?
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
请注意。我在我自己的设备和模拟器上试过这个
更新:
我更改了View Breakpoints选项中的设置以打开“Java Exception Breakpoints”,但仅限于未捕获的异常。然后,在onCreate结束时,我故意造成NullPointerException。当我现在在调试中运行时,我仍然没有点击我的实际代码并且没有在源代码上看到代码中断,但程序确实暂停。我知道这是我的NullPointerException导致这种情况,因为当我删除它时,我可以看到代码继续并且不会中断。
在我的代码中断调试窗口时,我在“主”线程中,在一个名为“performLaunchActivity”的函数中。我看不到比这更多的信息了。因此,我可能正在通过调用performLaunchActivity的任何级别的代码进行调试,但是我的源代码被视为无法单步执行它?
答案 0 :(得分:11)
尝试在minifyEnabled true
部分删除文件\app\build.gradle
中的行buildTypes - debug
。或者使用此屏幕并将Minify Enabled设置为false
答案 1 :(得分:4)
确保您的JDK是最新的,并且您的系统只包含一个JDK。
答案 2 :(得分:0)
gradle部分完全正常。我有相同的代码,他的调试工作正常。 你是如何设置断点的?您只需单击代码窗口的最左侧,就会出现一个红色的球。
参考:https://developer.android.com/sdk/installing/studio-debug.html