Когда я пытаюсь построить, я получаю эту стек:
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. Это написано в Котлине. Это не будет работать на transformClassesWithDesugarForDebug
Gradle задачи
Правки
Все это просто удары в темноте, которые я пробовал:
-
Создание нового проекта и перемещение только в моем исходном коде и файлах градиента.
-
Удаление из java 8 до 7.
-
Разная версия JDK. Я пробовал 1.8.0_151 и 1.8.0_152.
-
Добавление
javaMaxHeapSize "4g"
для сборки.gradle. -
Обновление всего: обертка графа и каждая зависимость.
-
Удаленный кинжал в пользу Коина
-
Удалено Kapt
-
Используются как предварительные, так и стабильные версии Android Studio
Вот мой пример сканирования, для чего это хорошо.
Новое открытие:
Это фрагмент кода, который меня убивает:
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, Бог?