【发布时间】:2015-05-22 04:36:06
【问题描述】:
几个月来,我一直在尝试让我的调试器中断我自己的代码,但没有成功。每个未捕获的异常都会在 ZygoteInit.run() 方法中中断。
这是我采取的行动的列表。
- 在我的应用模块的 build.gradle 文件中添加了
debug { debuggable true } - 手动将
debuggable="true"添加到我的AndroidManifest.xml 文件中 - 选中“断点”窗口中的
Any exception复选框 - 向
Any exception断点添加了相关的类过滤器模式- 这会导致调试器完全跳过所有未捕获的异常
我一直在通过查看 Logcat 中的堆栈跟踪进行调试,它确实在堆栈跟踪中显示了我的类。
我在稳定和金丝雀频道的当前和以前的版本中看到了这个版本。
这里有什么我遗漏的吗?
编辑:只是为了澄清一下,问题是我没有选中“捕获异常”框。选中此框解决了我的问题。
这是我的 Gradle 文件的相关部分,如果有帮助的话。
android {
compileSdkVersion 22
buildToolsVersion '22.0.0'
defaultConfig {
applicationId "com.--redacted--"
minSdkVersion 15
targetSdkVersion 22
versionCode 30
versionName "0.0.30"
multiDexEnabled true
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/beans.xml'
}
buildTypes {
debug {
debuggable true
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dexOptions {
javaMaxHeapSize "4g"
}
}
这是我的断点窗口的屏幕截图。
【问题讨论】:
-
你不能在任何地方都添加 try/catch 块来缩小异常发生的范围,然后在你将代码缩小到特定块后放置一个断点并调试代码代码?
-
@Fahim 没有解决我的问题。该链接没有详细提及异常断点。
-
@DanielNugent 我的代码库非常大。这不是一个现实的解决方案。我希望调试工具能像宣传的那样工作。
-
要问愚蠢但必要的问题,您单击的是调试按钮而不是运行按钮,对吗?而且您正在使用可调试的构建变体?
-
哈哈,是的,我正在做这两件事。不过,感谢您的检查!有时这是愚蠢的事情......
标签: java android android-studio