当断点位于方法的第一行时,无法在 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 上遇到了同样的问题。帮助我解决问题的解决方案:

  1. 在 IDEA 设置中禁用 Instant 运行
  2. 重新构建项目。
  3. 启用即时运行

当我想调试时,我厌倦了切换 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

}