Android 如何用Gradle创建JaCoCo的xml报表

Android 如何用Gradle创建JaCoCo的xml报表,android,gradle,android-gradle-plugin,jacoco,Android,Gradle,Android Gradle Plugin,Jacoco,我有一个Android项目。 我试图用JaCoCo代码覆盖Gradle 这是我的JaCoCo配置: apply plugin: 'jacoco' project.afterEvaluate { def buildTypes = android.buildTypes.collect { type -> type.name } def productFlavors = android.productFlavors.collect { flavor -> flavor.name }

我有一个Android项目。
我试图用JaCoCo代码覆盖Gradle

这是我的JaCoCo配置:

apply plugin: 'jacoco'

project.afterEvaluate {

def buildTypes = android.buildTypes.collect { type -> type.name }
def productFlavors = android.productFlavors.collect { flavor -> flavor.name }

if (!productFlavors) productFlavors.add('')
productFlavors.each { productFlavorName -> buildTypes.each {
                      buildTypeName -> def sourceName, sourcePath
                      if (!productFlavorName) {
                      sourceName = sourcePath = "${buildTypeName}" }
else {
sourceName = "${productFlavorName}${buildTypeName.capitalize()}"
sourcePath = "${productFlavorName}/${buildTypeName}"
}

def testTaskName = "test${sourceName.capitalize()}UnitTest"

task "${testTaskName}Coverage" (type:JacocoReport, dependsOn: "$testTaskName") {
      group = "Reporting"
      description = "Generate Jacoco coverage reports on the ${sourceName.capitalize()} build."
      classDirectories = fileTree(
          dir: "${project.buildDir}/intermediates/classes/${sourcePath}",
          excludes: [
             '**/R.class',
             '**/R$*.class',
             '**/*$ViewInjector*.*',
             '**/*$ViewBinder*.*',
             '**/BuildConfig.*',
             '**/Manifest*.*'
          ]
      )
      def coverageSourceDirs = [
          "src/main/java",
          "src/$productFlavorName/java",
          "src/$buildTypeName/java"
     ]
         additionalSourceDirs = files(coverageSourceDirs)
         sourceDirectories = files(coverageSourceDirs)
         executionData = files("${project.buildDir}/jacoco/${testTaskName}.exec")
         reports {
            xml.enabled = true
            html.enabled = true
        }
      }
    }
}
}

但是它只生成
.exec
文件,没有xml或html

我遗漏了什么?这行还不够吗

executionData = files("${project.buildDir}/jacoco/${testTaskName}.exec")
         reports {
            xml.enabled = true
            html.enabled = true
        }

您是否注意到覆盖率报告的默认位置是
app/build/reports/jacoco/coverageReport
,它不在
app/build/jacoco
中的
.exec
文件旁边?因此,没有任何报告,对吗?但是怎么了?你能解决这个问题吗?我在我的android项目中也看到了同样的情况