执行 com.android.build.gradle.internal.coverage.JacocoReportTask$JacocoReportWorkerAction 时发生故障

A failure occurred while executing com.android.build.gradle.internal.coverage.JacocoReportTask$JacocoReportWorkerAction

我想为我的项目生成代码覆盖率,所以我添加了,

debug {
      
        testCoverageEnabled true
}

当我 运行 命令 gradlew createDebugCoverageReport 我得到以下错误

Execution failed for task ':app:createDebugAndroidTestCoverageReport'.

> A failure occurred while executing com.android.build.gradle.internal.coverage.JacocoReportTask$JacocoReportWorkerAction
  
  >Unable to generate Jacoco report

在示例项目中使用相同的 gradle 版本和 kotlin 版本, 它在我的主要项目中给出错误。

经过大量研究,我发现这是 jacoco 的问题,感谢这个 issue 和它在 youtrack 中的评论,它们为我指出了正确的方向。要解决此问题,请将 jacoco 升级到版本 0.8.7

在应用级别 build.gradle 文件中添加以下行

plugins{
    ...
    id 'jacoco'
}

jacoco {
   toolVersion = "0.8.7"
}

android {
   ...
}

dependencies{
  ...
}

configurations.all{
resolutionStrategy {
    eachDependency { details ->
        if ('org.jacoco' == details.requested.group) {
            details.useVersion "0.8.7"
        }
    }
   }
}

我不确定为什么它在示例应用程序中有效

如果in-case,如果使用build.gradle.kts

plugins {
    ...
    jacoco
}

jacoco {
    toolVersion = "0.8.7"
}

configurations.all {
    resolutionStrategy {
        eachDependency {
            if (requested.group == "org.jacoco") {
                useVersion("0.8.7")
            }
        }
    }
}