Ответ 1
Проблема разрешилась, когда я добавил android.enableD8.desugaring = true
в gradle.properties
Когда я пытаюсь построить, я получаю эту стек:
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, Бог?
Проблема разрешилась, когда я добавил android.enableD8.desugaring = true
в gradle.properties
У меня есть способ обойти эту ошибку: java.lang.NullPointerException: Couldn't find outer class com/iconfitness/iconaudit/common/fragments/SettingsFragment$onCreate$1$1 of com/iconfitness/iconaudit/common/fragments/SettingsFragment$onCreate$1$1$1
.
Просто переместите этот код блока
v.showExitDialog()
.filter { it }
.subscribe({
cancel()
oo другой метод. Я больше не встречаюсь с этой проблемой. Я надеюсь, что это поможет вам.
Проблема отправлена здесь https://issuetracker.google.com/issues/72750890. Оба упомянутых там решения работали для меня: добавление classpath 'com.android.tools.build:gradle:3.0.1'
для сборки.gradle или добавления android.enableD8.desugaring=true
для gradle.properties
В качестве обходного пути вы можете заменить let
путем нулевой проверки. По крайней мере, код начал компилироваться после этого
if (view!=null)
view.showExitDialog()
.filter { it }
.subscribe({
cancel()
}, this::onError)
}
У меня была та же проблема, и она была связана с библиотекой, которая имела нефиксированную версию, то есть: (2.2. +), И все внезапно обновлялось, и затем мой проект начал иметь "" главную "java.lang.NullPointerException: Couldn ' не могу найти внешний...--> здесь у меня был затронутый класс, чтобы я мог обнаружить lib с проблемой "
Надеюсь, это поможет.