5

在我将 Android Studio 更新到 3.0 并按照此说明迁移我的项目之后

我得到这样的错误:

* What went wrong:
Execution failed for task 
':app:transformClassesWithFirebasePerformancePluginForDevDebug'.
> SHA-256 digest error for org/jacoco/agent/rt/RT.class

我跟踪发现根本原因来自build.gradle文件中的这段代码。

debug {
    ...
    // Run code coverage reports by default on debug builds.
    testCoverageEnabled = true
}

因为当我评论这行代码时,项目构建良好。我在使用 Android Studio 2.3 时没有遇到这个问题。

我搜索了一些相关主题,发现有人说禁用即时运行会解决,但不幸的是不适用于我的情况。

有人对解决这个问题有什么建议吗?

谢谢

4

1 回答 1

4

更新 2

Firebase 支持人员仍然表示该修复程序尚未推出,但我今天使用最新版本的firebase-perfand进行了尝试jacoco,它可以工作。

更新 1

firebase-perf启用Java 1.8 支持jacoco时不起作用。Firebase 支持团队能够复制这一点并正在调查。

原帖

firebase-perf这看起来是在启用插件时触发的。我向 Firebase 团队提交了一个错误,如果我得到答案,我会更新。

作为一种临时解决方法,仅注释掉apply plugin ... firebase-perf应该会有所帮助。它将禁用自动跟踪@AddTrace,但newTrace应该仍然有效。

在我的情况testCoverageEnabled下,根据项目属性有条件地设置,并且在评估覆盖率时我不需要 firebase-perf 插件,所以我只是禁用了插件:

if (!project.hasProperty('coverageRun')) {
    apply plugin: 'com.google.firebase.firebase-perf'
}
// < ... >
if (project.hasProperty('coverageRun')) {
    testCoverageEnabled true
}
于 2017-11-01T08:10:16.067 回答