Подтвердить что ты не робот

Ошибка RxJavaPlugins Не нашел класс "com.google.devtools.build.android.desugar.runtime.ThrowableExtension"

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

Студия: Android Studio 3.0 Beta 1 Версия Gradle Плагин: '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) 
4b9b3361

Ответ 1

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

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

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

Проблема снова исправлена ​​в Gradle плагине 3.0.0-beta4. Ожидается, что он будет включен в следующую версию 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 Beta 2 уже выпущен, содержащий плагин 3.0.0-beta2, который исправляет проблему.

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


История

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

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

Обновление 2: Исправлено, запланированное для следующей бета-версии "Fix войдет в плагин 3.0. 0-бета2"

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

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

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

Ответ 2

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