Ошибка RxJavaPlugins Не удалось найти класс "com.google.devtools.build.android.desugar.runtime.ThrowableExtension"

После обновления Android Studio 3.0 Beta 1 появляется следующая ошибка. Когда я понизил рейтинг, ошибка исчезла.

Студия сборки: Android Studio 3.0 Beta 1 Версия Gradle Plugin: 'com.android.tools.build:gradle:3.0.0-beta1' Версия Gradle:.0.0-beta1 Версия Java: 8 ОС: MacOSX

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;
at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:364)
at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:113)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Caused by: java.lang.ClassNotFoundException: 
Didn't find class "com.google.devtools.build.android.desugar.runtime.ThrowableExtension" on path: DexPathList[[zip file "/data/app/sark.savvy.Debug-1/base.apk",
 zip file "/data/app/sark.savvy.Debug-1/split_lib_dependencies_apk.apk", zip file "/data/app/sark.savvy.Debug-1/split_lib_slice_0_apk.apk",
  zip file "/data/app/sark.savvy.Debug-1/split_lib_slice_1_apk.apk", zip file "/data/app/sark.savvy.Debug-1/split_lib_slice_2_apk.apk",
   zip file "/data/app/sark.savvy.Debug-1/split_lib_slice_3_apk.apk", zip file "/data/app/sark.savvy.Debug-1/split_lib_slice_4_apk.apk", 
   zip file "/data/app/sark.savvy.Debug-1/split_lib_slice_5_apk.apk", zip file "/data/app/sark.savvy.Debug-1/split_lib_slice_6_apk.apk",
    zip file "/data/app/sark.savvy.Debug-1/split_lib_slice_7_apk.apk", zip file "/data/app/sark.savvy.Debug-1/split_lib_slice_8_apk.apk",
     zip file "/data/app/sark.savvy.Debug-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/sark.savvy.Debug-1/lib/arm64, /system/lib64, /vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:364) 
at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:113) 
at android.os.Handler.handleCallback(Handler.java:751) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:154) 

3 ответа

Обновление (все еще работает в плагине Gradle 3.0.0-бета5, подтверждено @ TmTron)

classpath 'com.android.tools.build:gradle:3.0.0-beta5'

Обновление (исправлено в плагине Gradle 3.0.0-бета4)

Проблема снова исправлена ​​в плагине Gradle 3.0.0-бета4. Ожидается, что он будет включен в следующую AS 3.0 Beta 4, но уже может быть использован в текущей AS 3.0 Beta 3 путем обновления build.gradle верхнего уровня:

classpath 'com.android.tools.build:gradle:3.0.0-beta4'

Обновление (регрессия в AS 3.0 Beta 3)

Проблема вернулась к бета-версии 3. Google уже знает об этой проблеме и вновь открыл ее. См. https://issuetracker.google.com/issues/64527520

Исправлена ​​в будущей бета-версии 4, ожидая выпуска.

Спасибо @yvolk за сообщение и @ghui-zhang за подтверждение.


Финальное обновление (исправлено в AS 3.0 Beta 2)

Как отмечает в своем комментарии Джордан Бондо, уже выпущена бета-версия AS 3.0, содержащая плагин 3.0.0-бета2, который устраняет проблему.

Таким образом, решение состоит в том, чтобы обновить плагин с 3.0.0-beta1 до версии 3.0.0-beta2.


история

Google решает эту проблему с приоритетом P0 (это высший приоритет) в этом выпуске: https://issuetracker.google.com/issues/64527520

Тем временем, обходной путь @edgars сделал это для меня. Спасибо!

Обновление 2: исправлено, запланировано на следующую бета-версию "Исправление попадет в плагин 3.0.0-бета2"

Обновление: дополнительный обходной путь, совместно используемый Googler:

Временным решением проблемы является установка min sdk версии ниже 19. Проблема в том, что Desugar будет обрабатывать try-with-resources для API 19+, хотя платформа поддерживает это, но мы не будем упаковывать эти классы.

Обновление 3: если функции Java 8 не используются в коде Java, отключите его (это также может быть полезно для кодовых баз Kotlin). Смотрите этот комментарий.

Я также столкнулся с той же ошибкой после обновления до AS 3.0 Beta 1 и нашел обходной путь: я сделал копию ThrowableExtension.java файл из источников Google и положить его в app\src\main\java\com\google\devtools\build\android\desugar\runtime (вы должны создать эти папки).

Эта проблема вернулась на Android Studio 3.0.1. Новая тема Google - https://issuetracker.google.com/issues/77591528.

Пожалуйста, пометьте тему, если у вас все еще есть проблема, и опубликуйте то, с чем столкнулись

Другие вопросы по тегам