Android Studio 4.0.0 Java 8 обессахаривание библиотеки в D8 и R8 Build Error - PullRequest
7 голосов
/ 20 июня 2020

Я начинаю использовать новое обновление Android Studio 4.0.0 и, следуя , включаю поддержку java 8 обесахаривания библиотеки в D8 и R8 :

compileOptions {
        // Flag to enable support for the new language APIs
         coreLibraryDesugaringEnabled true
        // Sets Java compatibility to Java 8
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }

и

dependencies {
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.6'
    ...
}

Я не могу создать свое приложение из-за следующей ошибки:

Unsupported desugared library configuration version, please upgrade the D8/R8 compiler.

Более подробно:

> Task :app:compileNoExtensionsDebugSources UP-TO-DATE

> Transform artifact desugar_jdk_libs_configuration-0.12.0.jar (com.android.tools:desugar_jdk_libs_configuration:0.12.0) with L8DexDesugarLibTransform
Error: Unsupported desugared library configuration version, please upgrade the D8/R8 compiler.

> Transform artifact databinding-common-4.0.0.jar (androidx.databinding:databinding-common:4.0.0) with DexingWithClasspathTransform
AGPBI: {"kind":"error","text":"Unsupported desugared library configuration version, please upgrade the D8/R8 compiler.","sources":[{}],"tool":"D8"}

> Transform artifact multidex-2.0.1.aar (androidx.multidex:multidex:2.0.1) with DexingWithClasspathTransform
Unsupported desugared library configuration version, please upgrade the D8/R8 compiler.

AGPBI: {"kind":"error","text":"Unsupported desugared library configuration version, please upgrade the D8/R8 compiler.","sources":[{}],"tool":"D8"}

> Transform artifact kotlin-android-extensions-runtime-1.3.72.jar (org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.72) with DexingWithClasspathTransform
AGPBI: {"kind":"error","text":"Unsupported desugared library configuration version, please upgrade the D8/R8 compiler.","sources":[{}],"tool":"D8"}
Unsupported desugared library configuration version, please upgrade the D8/R8 compiler.

Я пропустил здесь какую-либо конфигурацию? Как это исправить?

Ответы [ 3 ]

9 голосов
/ 20 июня 2020

Я столкнулся с той же проблемой после обновления coreLibraryDesugaring в build.gradle до com.android.tools:desugar_jdk_libs:1.0.6. Мое приложение работало нормально, пока я не обновил зависимость. Предложение появилось через два часа после go, когда я прошел мимо build.gradle, и я просто последовал его примеру.

dependencies {
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.6'
}

Я вернул зависимость обратно к com.android.tools:desugar_jdk_libs:1.0.5, и проблема волшебным образом исчезла.

dependencies {
    //noinspection GradleDependency
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.5'
}

Исходя из этого, я думаю, что это, вероятно, ошибка совместимости новой версии зависимости с IDE (возможно, обновление IDE может последовать за решением проблемы, я не знаю). Возможно, нам нужно сообщить об этом как о проблеме в Google, я еще не пробовал. : D

На самом деле, я создал эту учетную запись Stack Overflow только сейчас, чтобы поделиться ею после того, как увидел ваше сообщение, когда искал решение моей проблемы. :)

Обновление

Как упомянул @sgjesse из команды R8, изменения с 1.0.5 на 1.0.6 уже отменены в выпуске 1.0.7 чтобы исправить эту проблему, поэтому 1.0.5 и 1.0.7 одинаковы. Для получения дополнительных сведений см. Ответ @ sgjesse.

dependencies {
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.7'
}

Я перешел на 1.0.7, чтобы удалить предупреждение об устаревшей версии зависимости. :)

PS Не могу комментировать, потому что у меня еще нет 50 репутации. Спасибо, @sgjesse! :)

4 голосов
/ 22 июня 2020

[tl: dr] Версия 1.0.6 не работает с AGP 4.0.0. Вместо этого используйте 1.0.7 или 1.0.5 - они одинаковы.

Версия 1.0.6 была выпущена по адресу issue 158502561 , так как произошла ошибка только в зависимом файле POM влияющие на определенные инструменты. Однако я сделал ошибку, и 1.0.6 оказался несовместимым с Android Studio 4.0.0, поэтому был выпущен 1.0.7. 1.0.5 и 1.0.7 идентичны, а 1.0.8 будет выпущен позже для решения проблемы POM в зависимом артефакте.

2 голосов
/ 05 июля 2020

coreLibraryDesugaring 'com. android .tools: desugar_jdk_libs: 1.0.9' стабильный доступ

...