Android-байт-код JAVA отсутствует после обновления инструментов Gradle и Build - PullRequest
0 голосов
/ 19 ноября 2018

Я использую Jacoco для создания отчета о покрытии, и это работало нормально до обновления версий Gradle и BuildTools. Затем я возвращаю эти изменения и снова работаю.

Jacoco ищет .class файлов здесь:

$ {buildDir} / промежуточные / классы / отладки

Это приложение / сборка / промежуточные классы / отладка . Но я заметил, что после обновления этот путь отсутствует, классов dir внутри промежуточных звеньев

Моя конфигурация, которая работает:

Модуль уровня проекта

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"

Я не смог найти никаких ссылок об этом пути или о том, что может происходить

EDIT

Моя проблема в том, что, поскольку Java Byte Code (сгенерированные файлы .class) не существует, Jacoco не может создать отчет о покрытии

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

можно изменить classDirectories, используемое для задачи покрытия одинаково:

task "${testTaskName}Coverage" (type:JacocoReport, dependsOn: "$testTaskName") {
    ...
    classDirectories = fileTree(
        dir: "${project.buildDir}/intermediates/javac/debug/compileDebugJavaWithJavac/classes/${sourcePath}",
        excludes: [ ... ]
    )
    ...
}
0 голосов
/ 25 ноября 2018

Они под intermediates\javac\debug\compileDebugJavaWithJavac\classes

Вы можете настроить Jacoco для изменения пути классов.

Я не знаком с Jacoco, но думаю, что у него есть свойство с именем includes, которое используется для файлов .class.

Или, наверное, должно быть .properties.

...