D8 не работает при проверке gradle-api-8.11.1.jar во время инструментальных тестов AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 D8 не работает при проверке gradle-api-8.11.1.jar во время инструментальных тестов Android

Сообщение Anonymous »

Я сталкиваюсь с ошибкой сборки только при запуске инструментальных тестов Android (

Код: Выделить всё

connectedDebugAndroidTest
) в многомодульном проекте Android.
Среда
  • Плагин Android Gradle: 8.9.0
  • Gradle: 8.11.1
  • JDK: 17
  • Kotlin: 2.2.21
  • KSP: (проверено несколько версий, включая соответствующую строку 2.2.21-2.0.x)
  • Модуль, в котором произошел сбой: :core:database (библиотека Android)
Что я делаю

Провожу инструментированные тесты:

Код: Выделить всё

./gradlew :core:database:connectedDebugAndroidTest
Ошибка

Сборка завершается с ошибкой:

Код: Выделить всё

> Task :core:database:desugarDebugAndroidTestFileDependencies FAILED
Execution failed for task ':core:database:desugarDebugAndroidTestFileDependencies'.
> ... DexFileDependenciesWorkerAction
> Error while dexing.
И D8 сообщает о дублирующемся классе внутри gradle-api-8.11.1.jar:

Код: Выделить всё

Type org.gradle.internal.impldep.com.fasterxml.jackson.core.io.doubleparser.BigSignificand is defined multiple times:
.../gradle-api-8.11.1.jar:org/gradle/internal/impldep/com/fasterxml/jackson/core/io/doubleparser/BigSignificand.class,
.../gradle-api-8.11.1.jar:org/gradle/internal/impldep/META-INF/versions/11/com/fasterxml/jackson/core/io/doubleparser/BigSignificand.class
Путь jar:

Код: Выделить всё

~/.gradle/caches/8.11.1/generated-gradle-jars/gradle-api-8.11.1.jar
Это похоже на D8, обрабатывающий записи JAR Multi-Release (

Код: Выделить всё

META-INF/versions/11/...
) как дубликаты.
Вопрос
  • Почему gradle-api-8.11.1.jar попадает в зависимости пути классов/файлов androidTest для индексирования?
  • Каков правильный способ предотвратить появление внутренних jar-файлов Gradle (gradle-api) включено в инструментальное тестовое тестирование Android?
  • Это известная проблема/проблема совместимости с D8/Desugar и JAR-файлами Multi-Release или, возможно, это неправильная конфигурация в моей сборке?
Примечания/Что я пробовал
  • Код: Выделить всё

    dependencyInsight --dependency gradle-api
    в debugAndroidTestRuntimeClasspath не показал зависимость Maven, что заставляет меня подозревать неправильную настройку файлового включения/плагина/логики сборки.
  • Ранее у меня был модуль соглашения build-logic, случайно созданный как библиотека Android, но я перенес его обратно в плагин JVM Gradle. Тем не менее, ошибка сохраняется только при индексации androidTest.
Если кто-то видел это раньше или знает, где искать источник gradle-api, добавляемого в D8, буду признателен за рекомендации.

Подробнее здесь: https://stackoverflow.com/questions/798 ... nted-tests
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»