我的Android Studio项目最近停止正常构建。我不知道是什么导致了这个问题。
3.1.0-alpha2
和构建工具版本26.0.2
正确构建。我试了很多我认为我实际上已将所有内容更改回之前成功使用的设置,而其他具有类似设置的项目只是构建正常。
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
我不知道(有)会导致(d)这个问题,我对接下来要尝试什么感到无能为力,这就是我向你求助的原因。我希望除了我能找到的任何人之外还有其他帮助。
我标记了Firebase ,因为我认为库可能是我问题的关键点,现在的问题是它永远无法解释突然停止。我在我的应用程序中使用FirebaseUI
并尝试了旧的工作依赖项,但也升级了Firebase,然后使用this guide来匹配过时的UI库。我还删除了 FirebaseUI,但这没有成功构建。
答案 0 :(得分:9)
对我而言,它恰好是我正在使用的Leanplum库的版本 - 虽然我无法通过gradle表示错误,但我很生气地找到Desugar sources中的bazel ,构建它,然后从我失败的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)
我认为这对我有用,因为较新版本的Desugar有更好的错误报告......所以如果像我一样你无法弄清楚发生了什么,那么可能
bazel build //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar
),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来捕获它,但很高兴这是不必要的。
答案 1 :(得分:1)
就我而言,是Java版本引起了问题。当我在库中添加一个SDK jar时,错误开始出现,并且我知道该SDK与我们的Java版本1.8不兼容。使用Java 8更新的SDK jar解决。
答案 2 :(得分:0)
您是否尝试使用并清除AS 2.3中引入的构建缓存?
例如,我的gradle.properties有android.enableBuildCache=true
android.buildCacheDir=/tmp/android-build-cache
我不得不清除/tmp/android-build-cache
以修复我得到的Desugar错误。
答案 3 :(得分:0)
我修复了它(和another Kotlin related issue,只需从我的计算机上彻底擦除所有与Android相关的东西,然后从头开始安装所有东西。整个过程是一种折磨,所以我仍然渴望快速解决方案。我不想再花几个小时了:)
答案 4 :(得分:0)
在我们的情况下,构建机器上没有足够的ram。
答案 5 :(得分:0)
我最近在AS 3.1.4和Gradle 4.4中遇到了相同的问题。我不太清楚导致此问题的原因,但在我看来,它与自定义模块的编译有关。
我解决了将我的自定义模块作为jar依赖项导入的问题,而不是“编译”它。
简而言之: