安卓工作室4.0.0版本中,使用D8和R8编译Java 8库时出现构建错误

33

我开始使用新版本的Android Studio 4.0.0,并按照D8和R8中启用支持Java 8库的去除语法糖

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.

我有没有错过任何配置?如何解决这个问题?

8个回答

35

我在将build.gradle中的coreLibraryDesugaring更新为com.android.tools:desugar_jdk_libs:1.0.6后遇到了相同的问题。在进行此依赖项更新之前,我的应用程序构建良好。两个小时前,当我经过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帐户来分享这个问题。 :)

更新

如R8团队的@sgjesse所述,从1.0.5更改为1.0.6已经在发布的1.0.7中恢复以解决此问题,因此1.0.51.0.7是完全相同的。有关详细信息,请参见@sgjesse的答案。

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

我升级到版本1.0.7以消除关于依赖版本过期的警告。:)

P.S. 我不能评论,因为我的声望还不到50。谢谢,@sgjesse!:)


1
谢谢。它就像魔法一样有效。希望下一个更新中能够修复这个问题,因为我不知道该在哪里报告它们 :D。无论如何,是的,请加入并帮助其他人解决问题或分享您的经验,这很棒。 - maohieng
1
是的,我希望问题能够尽快解决。我也不知道在哪里或如何报告这个问题 :D 这个网站很棒,感谢欢迎,很高兴能够帮助! :) - Royce Pacibe
22
这个回答相当陈旧,我在更新从1.1.5到1.2.0后遇到了同样的问题。这可能是R8上的一个错误吗? - Lance
3
Lance构建工具7.2.0需要1.1.6版本。 - EpicPandaForce

9

coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.9' 稳定版已发布


6
使用此依赖项可获得针对API 33的支持。它是稳定的。
dependencies {
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.2'
}

虽然有一个更新的版本2.0.0,但我在构建时遇到了问题。

如果您对2.0.0版本感兴趣,请访问此链接:google/desugar_jdk_libs


6

我的情况。更新到2.0.0时出现错误。

改为1.1.5对我有用。

coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.1.5")

更新于02/2023

尝试更改为2.0.1,并解决了之前的错误,但出现了与OkHttpClient相关的新错误。

java.lang.VerifyError: Verifier rejected class j$.util.concurrent.ConcurrentLinkedQueue

更新于04/2023

2.0.3现在运行良好。


1
您现在可以升级到2.0.1及以上版本。该错误已经修复。 - arshcaptano
@arshcaptano 谢谢。构建成功了,但是应用程序在启动后崩溃了。 - Binh Ho
1
v2.0.2 已发布。虽然在更改日志中未提及此问题的修复,但它似乎是最稳定的。谢谢。 - arshcaptano
1
115救了我的命,201~202会给我提供不支持的解糖库配置版本,请升级D8/R8编译器。 - Mia
2
是的,2.0.2、2.0.0和1.2.2都没有解决问题,但1.1.5解决了。 - CoolMind
1
目前(2023年11月5日),2.0.3版本出现了一个新问题:ERROR:: D8: java.lang.IllegalStateException: This is not a JSON Array. org.gradle.workers.WorkerExecutionException: 执行工作项时出现多个失败。 - aolphn

6
1.0.6 版本不支持 AGP 4.0.0,请使用 1.0.7 或者 1.0.5 版本 - 它们是相同的。 1.0.6 版本发布是为了解决 问题 158502561,因为依赖的 POM 文件中存在一个错误,只会影响某些工具。但是我犯了一个错误,导致 1.0.6 不兼容 Android Studio 4.0.0,这就是为什么 1.0.7 版本被发布的原因。1.0.51.0.7 是相同的版本,1.0.8 将稍后发布以解决依赖工件中的 POM 问题。

1
有没有地方可以找到com.android.tools:desugar_jdk_libs新版本的发布说明? - user1114
1
目前com.android.tools:desugar_jdk_libs没有发布说明/变更日志。这里的挑战在于,https://github.com/google/desugar_jdk_libs中的代码只是故事的一部分。完整的库去糖化包括配置(https://source.corp.google.com/r8/src/library_desugar/desugar_jdk_libs.json),它作为单独的工件(`com.android.tools:desugar_jdk_libs_configuration`)进行发布,并且需要AGP/D8/R8的组合来理解配置。 - sgjesse

5

我在更新至 Android 11 后遇到了同样的错误,以下方法对我有用:

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

1

看起来这个库与其他库的版本存在一些问题。

目前最新版本是2.0.2,但我在使用这些版本(Android Studio Dolphin | 2021.3.1 Patch 1,compileSdk 33)时遇到了相同的错误。

所以我发现我可以使用这个版本代替:

coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.8'

希望能帮助其他人。


0
问题出在desugar_jdk版本上。 对我来说,1.1.5版本可以工作,尽管有最新的2.0.4版本。 但这取决于情况。 看一下desugar_jdk的版本。 点击这里进入链接 我建议尝试任何版本,并检查哪个版本与您的安卓系统版本兼容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接