我的android工作室项目最近停止了正常的构建。我不知道是什么引起了这个问题。这是我试过的
我试着用不同的android studio版本来构建我的项目,即稳定的和不同的canary频道版本,没有变化
我改变了sdk的版本。我的项目用sdk 26构建得很好,但现在不行了,sdk 27也不行
我交换了构建工具和gradle版本,我的项目使用gradle plugin3.1.0-alpha2
和构建工具版本26.0.2
正确构建。我试了很多
我用了“清洁项目”,“无效缓存”…android studio中的函数无数次
我删除了生成文件夹
我打开和关闭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
问题描述
我不知道是什么原因引起了这个问题,我也不知道下一步该怎么做,这就是我向你求助的原因。我希望除了我能找到的以外,还有其他人能帮我。
我标记firebase是因为我认为库可能是我问题的关键点,现在的问题是它永远无法解释突然停止的原因。我在应用程序中使用
FirebaseUI
并尝试了旧的工作依赖项,但也升级了firebase,然后使用this guide匹配过时的ui库。我也删除了firebaseui,但这都没有成功构建。 最佳答案
对我来说,它碰巧是我正在使用的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有更好的错误报告…所以如果像我一样你不知道发生了什么
installing 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中才能捕捉到这一点,但很高兴这是不必要的。