RxJavaPlugins错误没有';“找不到类”;com.google.devtools.build.android.desugar.runtime.ThrowableExtension;

RxJavaPlugins错误没有';“找不到类”;com.google.devtools.build.android.desugar.runtime.ThrowableExtension;,android,android-gradle-plugin,rx-java2,android-studio-3.0,Android,Android Gradle Plugin,Rx Java2,Android Studio 3.0,升级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/devto

升级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) 

升级到AS 3.0 Beta 1后,我也遇到了同样的错误,并找到了一个解决方法:我从中复制了
ThrowableExtension.java
文件,并将其放入
app\src\main\java\com\google\devtools\build\android\desugar\runtime
(您必须创建这些文件夹)

更新(仍在使用Gradle插件3.0.0-beta5,由@TmTron确认)


更新(在Gradle插件3.0.0-beta4中修复)

问题在Gradle插件3.0.0-beta4中再次修复。预计将包含在下一个AS 3.0 Beta 4中,但可以通过更新顶级build.gradle在当前AS 3.0 Beta 3中使用:

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

更新(在AS 3.0 Beta 3中回归)

问题又回到了beta 3。谷歌已经意识到了这个问题,并重新开放了它。看

已在未来的beta 4中修复,尚待发布

感谢@yvolk的报道和@ghui zhang的确认


最终更新(在AS 3.0 Beta 2中修复)

正如Jordan Bondo在评论中所说,As 3.0 Beta 2已经发布,其中包含修复该问题的插件3.0.0-Beta 2

因此,解决方案是将插件从3.0.0-beta1升级到至少3.0.0-beta2


历史

谷歌正在处理这一问题,其优先级为P0(这是最高优先级):

与此同时,@edgars workaround为我做了这件事。谢谢

更新2已修复,计划下一个测试版

更新:谷歌分享:

临时解决方法是将最小sdk版本设置为19以下。问题是Desugar将使用API 19+的资源处理try,尽管平台支持它,但我们不会打包这些类


更新3:如果Java代码中未使用Java 8功能,请禁用它(这对Kotlin代码库也很有用)。请参阅。

本期将回到Android Studio 3.0.1。新的谷歌线程是


如果您仍有此问题,请在帖子中加上星号,并发布您遇到的问题。

谢谢@Edgars Supe。很抱歉,到目前为止我在这方面的经历很糟糕。假设这是一个bug,并希望谷歌在下一步修复它release@Bulu我认为这是Android Studio中的BUG。在Android公共跟踪器上发布以下相关BUG报告,以帮助它获得可见性并更快地得到修复:好的,我之前提到的问题被标记为重复。请用星号代替此选项:@AndrewKelly从3.0.1开始看起来已损坏。我已打开此票据中提到的临时解决方案,即使用minSdk<19@edgars解决方案确实可以用于构建应用程序,但不适用于instrumentationTests(对我而言),我只是将它放在
src/main
中。现在我已经删除了@edgars solution并仅使用minSdk<19,这似乎在3.0 Beta 2中得到了修复。据我所见,AndroidStudio 3.0 Beta 3仍然存在此缺陷。正如@Jan Weitz所建议的,我将minSdk降低到了18,这个错误已经从AS3.0-beta5(和
com.android.tools.build:gradle:3.0.0-beta5
)中的仪器测试工作中消失了,谢谢Marline。看起来它在3.1.1中已经修复(从您打开的问题开始),我在这里添加此评论是为了让遇到相同问题的其他人知道解决方案。:)
classpath 'com.android.tools.build:gradle:3.0.0-beta4'