Android:杰克无法获得Jacoco的覆盖范围

时间:2017-05-30 17:20:15

标签: android gradle code-coverage jacoco

自从切换到使用Jack编译我们的Android应用程序后,我们的Jacoco Code Coverage已停止工作。起初问题是“覆盖率始终为0%”,我已经看到多个其他人提到过Jacoco Test Coverage report shows 0%android jacoco shows 0%...)。然而,在返回尝试修复它时,我现在发现我甚至无法构建覆盖任务。经过大量尝试在互联网上提供的大量随机解决方案后,我启动了一个全新的Android Studio项目,并将其切换为使用Jack(没有其他更改),而仍然失败了:

:main_project:createDebugAndroidTestCoverageReport FAILED

File '/path/to/project/build/intermediates/jack/striiv/debug/coverage.em' specified for property 'metadataFile' does not exist.

以下是我的玩具应用程序的gradle文件。

project build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

app build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "24.0.0"
    defaultConfig {
        applicationId "com.tadams.app.jacoco"
        minSdkVersion 19
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        jackOptions.enabled = true
        jackOptions.jackInProcess = false

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            testCoverageEnabled(true)
        }
    }

}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.android.support:design:25.3.1'
    testCompile 'junit:junit:4.12'
}

感谢您提供任何帮助!特别是,我一直在努力研究如何生成元数据文件,但除了Android应该照顾它的事实,我无法理解。在那之前,我只是在猜测解决方案。

编辑:记住Gradle日志中的一个重要项目:

:main_project:transformJackWithJackForDebugAndroidTest
Unable to find coverage plugin '/Users/tadams/Library/Android/sdk/build-tools/24.0.0/jack-coverage-plugin.jar'.  Disabling code coverage.

.jar绝对是在那个目录中,所以不知道为什么它不会看到它或如何解决它。

0 个答案:

没有答案