gpt4 book ai didi

Gradle 构建失败 : Couldn't find outer class

转载 作者:IT老高 更新时间:2023-10-28 13:34:09 26 4
gpt4 key购买 nike

在尝试构建时,我得到了这个堆栈跟踪:

Exception in thread "main" java.lang.NullPointerException: Couldn't find outer class com/xxx/CheckListPresenter$onAttached$1$5 of com/xxx/CheckListPresenter$onAttached$1$5$1
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:1079)
at com.google.devtools.build.android.desugar.ClassVsInterface.isOuterInterface(ClassVsInterface.java:56)
at com.google.devtools.build.android.desugar.InterfaceDesugaring.visitOuterClass(InterfaceDesugaring.java:246)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:638)
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)

我检查了 CheckListPresenter 类,似乎没有任何问题。我尝试删除该类只是为了看看它是否会构建,但错误只是转移到另一个说明相同问题的类。

我最后一次接触这段代码是在几个月前,所以我不确定是什么触发了这个变化。

重要事项:这是一个 Android 项目。这是用 Kotlin 编写的。这在 transformClassesWithDesugarForDebug gradle 任务上失败


编辑

这些都只是我在黑暗中尝试过的尝试:

  • 创建一个新项目并仅移入我的源代码和 gradle 文件。

  • 从 java 8 到 7.

  • JDK 的不同版本。我试过 1.8.0_151 和 1.8.0_152。

  • 在 build.gradle 中添加 javaMaxHeapSize "4g"

  • 升级一切:gradle wrapper 和每个依赖项。

  • 移除 Dagger 以支持 Koin

  • 已移除 Kapt

  • 使用 Android Studio 的 Preview 和 Stable 版本

这是我的build scan会有什么好处

新发现:

这是让我死心的代码片段:

view?.let { v ->
v.getCancelClicks()
.doOnSubscribe({ disposables.add(it) })
.subscribe({
v.showExitDialog()
.filter { it }
.subscribe({
cancel()
}, this::onError)

}, this::onError)
}

奇怪的是,这些单独都不会给我带来问题

view?.let { v ->
v.getCancelClicks()
.doOnSubscribe({ disposables.add(it) })
.subscribe({
//removed
}, this::onError)
}
}

view?.let { v ->
v.showExitDialog()
.filter { it }
.subscribe({
cancel()
}, this::onError)
}

但是加在一起他们是个问题。

还有一点需要注意,view是在基类中定义的,是泛型的。

目前,我的解决方法是删除 view?.let{ 并只使用 view!!。这显然是一个错误,但我不确定该向谁报告。 Gradle、Kotlin、JetBrains、上帝?

最佳答案

当我将 android.enableD8.desugaring = true 添加到 gradle.properties

后问题自行解决

关于Gradle 构建失败 : Couldn't find outer class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49866403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com