当断点位于方法的第一行时,无法在 Android Studio 中看到参数值
Cannot see parameter value in Android Studio when breakpoint is in first line of a method
我刚从 Eclipse 切换到 Android Studio,发现了这个奇怪的行为。当我在方法的第一行添加断点时,我看不到参数值。我唯一能看到的就是 this
参考。我要么必须执行一个调试步骤,要么将断点设置到第一个断点之后的一行以查看参数值。
其他人有这个问题或知道这里出了什么问题吗?
Googlehere提供的解决方案是将AndroidStudioGradle插件升级到v1.0.1
尝试为 build.gradle 文件中的调试版本关闭 jacoco 测试覆盖率:
debug {
...
testCoverageEnabled false
}
这完全解决了我无法升级 gradle 插件的问题。
评论区AOSP Issue #123771 is solved, is to use the snippet provided by Stuart之前的好方案:
buildTypes {
debug {
[...]
testCoverageEnabled true
}
release {
[...]
}
debuggable.initWith(buildTypes.debug)
debuggable {
testCoverageEnabled false
}
}
这样您既可以将测试覆盖率报告保存在调试版本中,又可以逐步查看局部变量的代码。
如果您的构建使用 jack toolchain 这可能是问题的根源。在我的例子中,禁用 jack 解决了问题:
buildTypes {
...
debug {
jackOptions {
enabled false
}
}
}
注意:1.8源兼容需要插孔!
我的 gradle 文件中没有:
debug {
...
testCoverageEnabled true
}
但是 在 Android Studio 2.2 上遇到了同样的问题。帮助我解决问题的解决方案:
- 在 IDEA 设置中禁用 Instant 运行。
- 重新构建项目。
- 启用即时运行。
当我想调试时,我厌倦了切换 testCoverageEnabled
,所以设置一个项目 属性 以在 运行 来自 Android Studio 时禁用它,但默认为从命令行 运行 时启用,没有任何选项,例如在构建框上。
// Default to true, set -PtestCoverageEnabled=false in IDE compiler command-line options
def isTestCoverageEnabled = { ->
def enabled = project.hasProperty('testCoverageEnabled') ? testCoverageEnabled.toBoolean() : true
println "testCoverageEnabled = " + (enabled ? "true" : "false")
return enabled
}
android {
buildTypes {
debug {
testCoverageEnabled isTestCoverageEnabled()
}
}
}
要在 IDE 中设置 属性 添加命令行选项 -PtestCoverageEnabled=false
Android Studio -> 首选项 -> 构建、执行、部署 -> 编译器 -> 命令行选项
我 运行 在尝试调试以前使用 APK 而不是 Android Studio 本身安装的应用程序时遇到了这个问题。通过卸载应用程序并重新运行 调试来修复它。
以下配置适用于我的 buildType 版本。
buildTypes {
发布{
testCoverageEnabled = false
可调试为真
minifyEnabled 假
shrinkResources false
}
我刚从 Eclipse 切换到 Android Studio,发现了这个奇怪的行为。当我在方法的第一行添加断点时,我看不到参数值。我唯一能看到的就是 this
参考。我要么必须执行一个调试步骤,要么将断点设置到第一个断点之后的一行以查看参数值。
其他人有这个问题或知道这里出了什么问题吗?
Googlehere提供的解决方案是将AndroidStudioGradle插件升级到v1.0.1
尝试为 build.gradle 文件中的调试版本关闭 jacoco 测试覆盖率:
debug {
...
testCoverageEnabled false
}
这完全解决了我无法升级 gradle 插件的问题。
评论区AOSP Issue #123771 is solved, is to use the snippet provided by Stuart之前的好方案:
buildTypes {
debug {
[...]
testCoverageEnabled true
}
release {
[...]
}
debuggable.initWith(buildTypes.debug)
debuggable {
testCoverageEnabled false
}
}
这样您既可以将测试覆盖率报告保存在调试版本中,又可以逐步查看局部变量的代码。
如果您的构建使用 jack toolchain 这可能是问题的根源。在我的例子中,禁用 jack 解决了问题:
buildTypes {
...
debug {
jackOptions {
enabled false
}
}
}
注意:1.8源兼容需要插孔!
我的 gradle 文件中没有:
debug {
...
testCoverageEnabled true
}
但是 在 Android Studio 2.2 上遇到了同样的问题。帮助我解决问题的解决方案:
- 在 IDEA 设置中禁用 Instant 运行。
- 重新构建项目。
- 启用即时运行。
当我想调试时,我厌倦了切换 testCoverageEnabled
,所以设置一个项目 属性 以在 运行 来自 Android Studio 时禁用它,但默认为从命令行 运行 时启用,没有任何选项,例如在构建框上。
// Default to true, set -PtestCoverageEnabled=false in IDE compiler command-line options
def isTestCoverageEnabled = { ->
def enabled = project.hasProperty('testCoverageEnabled') ? testCoverageEnabled.toBoolean() : true
println "testCoverageEnabled = " + (enabled ? "true" : "false")
return enabled
}
android {
buildTypes {
debug {
testCoverageEnabled isTestCoverageEnabled()
}
}
}
要在 IDE 中设置 属性 添加命令行选项 -PtestCoverageEnabled=false
Android Studio -> 首选项 -> 构建、执行、部署 -> 编译器 -> 命令行选项
我 运行 在尝试调试以前使用 APK 而不是 Android Studio 本身安装的应用程序时遇到了这个问题。通过卸载应用程序并重新运行 调试来修复它。
以下配置适用于我的 buildType 版本。
buildTypes {
发布{
testCoverageEnabled = false
可调试为真
minifyEnabled 假
shrinkResources false
}