Android-байт-код JAVA отсутствует после обновления инструментов Gradle и Build

1

Я использую 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"

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

РЕДАКТИРОВАТЬ

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

Теги:
gradle
code-coverage
jacoco

2 ответа

2
Лучший ответ

Они находятся в intermediates\javac\debug\compileDebugJavaWithJavac\classes

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

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

Или, должно быть, .properties для этого, я думаю.

  • 1
    Спасибо! Знаете почему, куда они переехали? а также есть ли какие-либо документы об этом?
  • 0
    @sebasira Я не смог найти никаких документов, но я думаю, что это для очистки и организованных каталогов для будущего развития. так как android собирается закончиться и будет заменен Fuchsia, а среда Flutter будет использоваться с Dart вместо Java, я думаю, они готовят среду для этого.
2

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

task "${testTaskName}Coverage" (type:JacocoReport, dependsOn: "$testTaskName") {
    ...
    classDirectories = fileTree(
        dir: "${project.buildDir}/intermediates/javac/debug/compileDebugJavaWithJavac/classes/${sourcePath}",
        excludes: [ ... ]
    )
    ...
}
  • 0
    Спасибо! Хотя ваш ответ также верен, я вынужден отметить @MDP как правильный, потому что он ответил ранее.
  • 1
    @sebasira другой ответ не дает никакого решения, как изменить путь. в то время как ваш «вопрос» даже не содержит какого-либо фактического вопроса - который должен был бы сказать, какой ответ является правильным. более быстрый ответ не означает лучшего ответа. Функция IDE search > in path для шаблона *.class предоставила бы точно такую же информацию.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню