Android Studio Desugar:使用Desugar进行调试的转换失败

cre*_*not 7 android firebase android-studio firebaseui

我的Android Studio项目最近停止了正确构建.我不知道是什么导致了这个问题.

这是我试过的

  • 我尝试用不同的Android Studio版本构建我的项目,即稳定和不同的Canary频道版本,没有变化
  • 更改了SDK版本.我的项目使用SDK 26正确构建,但现在它没有,也没有使用SDK 27
  • 交换了构建工具和Gradle版本,我的项目使用Gradle插件3.1.0-alpha2和构建工具版本正确构建26.0.2.我尝试了很多
  • 我在Android Studio中使用了"Clean Project","Invalidate Caches" ...功能无数次
  • 我删除了我的构建文件夹
  • 我打开和关闭了Proguard
  • 我尝试修复可能的库问题,但所有这些都无济于事

我想我实际上已将所有内容更改回我之前成功使用设置,而我的其他具有类似设置的项目构建正常.

完整的错误代码:

Error:java.lang.RuntimeException: com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.google.devtools.build.android.desugar.Desugar with arguments {@...\app\build\intermediates\tmp\desugar_args165654356027684238}

Error:com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.google.devtools.build.android.desugar.Desugar with arguments {@...\app\build\intermediates\tmp\desugar_args165654356027684238}
Error:java.lang.RuntimeException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.google.devtools.build.android.desugar.Desugar with arguments {@...\app\build\intermediates\tmp\desugar_args165654356027684238}
Error:java.lang.RuntimeException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.google.devtools.build.android.desugar.Desugar with arguments {@...\app\build\intermediates\tmp\desugar_args165654356027684238}
Error:com.android.ide.common.process.ProcessException: Error while executing java process with main class com.google.devtools.build.android.desugar.Desugar with arguments {@...\app\build\intermediates\tmp\desugar_args165654356027684238}

Error:org.gradle.process.internal.ExecException: Process 'command '...\jre\bin\java.exe'' finished with non-zero exit value 1
Run Code Online (Sandbox Code Playgroud)

问题描述

我不知道有什么可以(有)事业(d)这个问题,我很无能什么尝试下一个,这就是为什么我要求你帮忙的原因.我希望除了我能找到的任何人有任何其他帮助.

我标记了Firebase,因为我认为库可能是我问题的关键点,现在的问题是它永远无法解释突然停止.我FirebaseUI在我的应用程序中使用并尝试了旧的工作依赖项,但也升级了Firebase,然后使用本指南来匹配过时的UI库.我也删除了 FirebaseUI,但这没有成功构建.

Eri*_*ell 10

对我来说,它碰巧是我正在使用的Leanplum库的版本 - 虽然我无法通过gradle表示错误,但我很生气地在bazel中找到Desugar源代码,构建它,然后复制命令行来自我失败的gradle构建的参数,这使我进入了Leanplum jar,它似乎在两个不同的混淆元素之间发生了名称冲突:

Exception in thread "main" java.lang.IllegalStateException: Already recorded as class: com/leanplum/a/x
    at com.google.common.base.Preconditions.checkState(Preconditions.java:582)
    at com.google.devtools.build.android.desugar.ClassVsInterface.addKnownInterfaces(ClassVsInterface.java:46)
    at com.google.devtools.build.android.desugar.InterfaceDesugaring.visit(InterfaceDesugaring.java:96)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:621)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:500)
    at com.google.devtools.build.android.desugar.Desugar.desugarClassesInInput(Desugar.java:477)
    at com.google.devtools.build.android.desugar.Desugar.desugarOneInput(Desugar.java:361)
    at com.google.devtools.build.android.desugar.Desugar.desugar(Desugar.java:314)
    at com.google.devtools.build.android.desugar.Desugar.main(Desugar.java:711)
Run Code Online (Sandbox Code Playgroud)

我认为这对我有用,因为较新版本的Desugar有更好的错误报告......所以,如果像我一样你无法弄清楚发生了什么,那么有可能

  • 安装bazel(我在mac上使用自制软件)
  • 然后构建自己的Desugar版本(我从bazel repo的根目录中使用的命令是bazel build //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar),
  • 然后从失败的gradle构建中复制和粘贴CLI参数将导致洞察力.(命令结束这样看:path/to/your/built/Desugar --verbose --input /Users/you/yourApp/app/build/intermediates/transforms/stackFramesFixer/envDev/debug/109.jar .... --desugar_try_with_resources_if_needed --desugar_try_with_resources_omit_runtime_classes)

我原本期望将自己的错误记录添加到Desugar来捕获它,但很高兴这是不必要的.


cre*_*not 0

我修复了它(以及另一个与 Kotlin 相关的问题,只需从我的计算机上完全擦除所有与 Android 和 Gradle 相关的内容,然后从头开始安装所有内容。整个过程是一种折磨,所以我仍然热衷于快速解决方案。我不想再次花几个小时在这上面:)