更新Gradle和构建工具后,Android JAVA字节代码丢失

时间:2018-11-19 12:29:53

标签: android gradle code-coverage jacoco

我正在使用Jacoco创建一份覆盖率报告,并且在更新Gradle和BuildTools版本之前一直工作良好。然后,我还原这些更改并重新工作。

Jacoco在此处寻找 .class 文件:

  

$ {buildDir} / intermediates / classes / debug

这是 app / build / intermediates / classes / debug 。但是我注意到,升级后该路径丢失了,中间体

中没有 classes 目录

我的配置有效:

项目级别模块

classpath 'com.android.tools.build:gradle:3.1.4'
classpath 'io.fabric.tools:gradle:1.25.1'

应用程序级别模块

compileSdkVersion 27
buildToolsVersion "27.0.3"

这是更新的时间:

项目级别模块

classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'io.fabric.tools:gradle:1.25.4'

应用程序级别模块

compileSdkVersion 28
buildToolsVersion "28.0.3"

我找不到关于该路径正在移动或正在发生什么的任何参考

编辑

我的问题是,由于Java字节码(生成的.class文件)不存在,因此Jacoco无法创建覆盖率报告

2 个答案:

答案 0 :(得分:3)

一个人都可以更改覆盖任务使用的classDirectories

task "${testTaskName}Coverage" (type:JacocoReport, dependsOn: "$testTaskName") {
    ...
    classDirectories = fileTree(
        dir: "${project.buildDir}/intermediates/javac/debug/compileDebugJavaWithJavac/classes/${sourcePath}",
        excludes: [ ... ]
    )
    ...
}

答案 1 :(得分:2)

他们在intermediates\javac\debug\compileDebugJavaWithJavac\classes

您可以配置Jacoco来更改类路径。

我不熟悉Jacoco,但我认为它具有一个名为includes的属性,该属性用于.class文件。

或者我认为应该有一个.properties