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

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

Сборка Studio: 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) 

person Bulu    schedule 10.08.2017    source источник
comment
Я открыл issuetracker.google.com/issues/64556098.   -  person Jan Weitz    schedule 10.08.2017


Ответы (3)


Обновление (все еще работает в плагине 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-beta2.


История

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

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

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

Обновление: дополнительный обходной путь, которым поделился сотрудник Google:

Временный обходной путь — установить минимальную версию sdk ниже 19. Проблема в том, что Desugar будет обрабатывать попытку с ресурсами для API 19+, хотя платформа это поддерживает, но мы не будем упаковывать эти классы.

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

person Xavier Rubio Jansana    schedule 10.08.2017
comment
Временный обходной путь, упомянутый в этом тикете, заключается в использовании minSdk ‹ 19. Решение @edgars работало для создания приложения, но не для инструментальных тестов (для меня). - person Jan Weitz; 10.08.2017
comment
Спасибо, я только что увидел дополнительный обходной путь в системе отслеживания проблем Google и обновил его. Обходной путь @edgars работает для меня как в приложении, так и в тестах, но, по-видимому, люди видят смешанные результаты. Я добавил его в код приложения, а не только в тесты. Вы сделали то же самое? - person Xavier Rubio Jansana; 10.08.2017
comment
Я просто вставил его в src/main. Теперь я удалил решение @edgars и использую только minSdk ‹ 19, который работает - person Jan Weitz; 10.08.2017
comment
Спасибо. Для меня понижение minSdk не вариант, нужны фичи 4.4. - person Xavier Rubio Jansana; 10.08.2017
comment
Кажется, это исправлено в AS 3.0 Beta 2. - person Jordan; 14.08.2017
comment
Да, они сначала выпустили плагин, а потом, как вы говорите, AS 3.0 Beta 2. Это было быстро! - person Xavier Rubio Jansana; 14.08.2017
comment
Как я вижу, в AndroidStudio 3.0 Beta 3 эта ошибка все еще есть. Как предложил @Jan Weitz, я снизил minSdk до 18, и эта ошибка исчезла из инструментальных тестов. - person yvolk; 25.08.2017
comment
AndroidStudio 3.0 Beta 3 все еще имеет эту ошибку - person Seth; 25.08.2017
comment
@yvolk Вы обновили плагин Gradle? Исправление не в самом AS, а в плагине Gradle, который по умолчанию включен в AS 3.0 beta 2. В качестве дополнительного шага вы выполнили очистку проекта перед сборкой? - person Xavier Rubio Jansana; 25.08.2017
comment
Обновление: вы абсолютно правы, я обновился до бета 3, и ошибка вернулась. Бета 2 кажется отличной @yvolk Я видел, что вы уже сообщили об этом в оригинальном выпуске. Спасибо! - person Xavier Rubio Jansana; 25.08.2017
comment
У меня теперь работает в AS3.0-beta5 (и com.android.tools.build:gradle:3.0.0-beta5) - person TmTron; 12.09.2017
comment
@TmTron Спасибо. Я вчера видел новый плагин, но еще не смог его протестировать. - person Xavier Rubio Jansana; 12.09.2017
comment
@XavierRubioJansana не работает в «com.android.tools.build:gradle:3.0.1» - person click_whir; 22.02.2018
comment
@click_whir Что ты имеешь в виду под словом «не работает»? Опять та же ошибка? Не могли бы вы предоставить более подробную информацию? - person Xavier Rubio Jansana; 23.02.2018
comment
@XavierRubioJansana Ошибка Proguard. Отключение функций Java 1.8 снова разблокирует меня. Warning: rx.exceptions.CompositeException: can't find referenced method 'void printStackTrace(java.lang.Throwable,java.io.PrintStream)' in program class com.google.devtools.build.android.desugar.runtime.ThrowableExtension Warning: timber.log.Timber$Tree: can't find referenced method 'void printStackTrace(java.lang.Throwable,java.io.PrintWriter)' in program class com.google.devtools.build.android.desugar.runtime.ThrowableExtension - person click_whir; 23.02.2018
comment
@click_whir Вероятно, это потому, что Proguard удаляет этот метод, а не из-за ошибки. Попробуйте снова включить Java 1.8 и отключить Proguard. - person Xavier Rubio Jansana; 23.02.2018

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

person Edgars    schedule 10.08.2017
comment
Спасибо @ Эдгарс Супе. Извините, что у меня был ужасный опыт с ним до сих пор. Предположим, что это ошибка, и надеемся, что Google исправит ее в следующем выпуске. - person Bulu; 10.08.2017
comment
@Bulu Я думаю, что это ОШИБКА в Android Studio. - person M D; 10.08.2017
comment
Пометьте следующий соответствующий отчет об ошибке в общедоступном средстве отслеживания Android, чтобы оно стало заметным и быстрее исправлялось: issuetracker.google. .com/issues/64533199 - person developer_7; 10.08.2017
comment
Хорошо, проблема, о которой я упоминал ранее, была отмечена как повторяющаяся. Вместо этого отметьте этот: issuetracker.google.com/issues/64527520. - person developer_7; 10.08.2017
comment
Да, смотрите мой ответ выше для более подробной информации @developer_7 :) - person Xavier Rubio Jansana; 10.08.2017
comment
Эта ошибка была исправлена ​​в AS 3.0 Beta 2, но была устранена в Beta 3. Beta 4 должна исправить ее еще раз. - person Andrew Kelly; 01.09.2017
comment
@AndrewKelly выглядит сломанным с версии 3.0.1. - person click_whir; 22.02.2018

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

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

person Marline    schedule 06.04.2018
comment
Спасибо, Марлин. Похоже, это исправлено в 3.1.1 (из проблемы, которую вы открыли), я добавляю этот комментарий сюда, чтобы сообщить решение другим людям, столкнувшимся с той же проблемой. :) - person Xavier Rubio Jansana; 31.05.2018