RxJavaPlugins エラー クラス「com.google.devtools.build.android.desugar.runtime.ThrowableExtension」が見つかりません 質問する

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 OS: 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) 

ベストアンサー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 に含まれる予定ですが、トップレベルの build.gradle を更新することで、現在の AS 3.0 Beta 3 でも使用できます。

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

アップデート(AS 3.0 ベータ 3 での回帰)

この問題はベータ3に戻ってきました。Googleはすでにこの問題を認識しており、再度公開しています。https://issuetracker.google.com/issues/64527520

今後のベータ 4 で修正され、リリースが保留されています。

報告してくださった @yvolk さんと確認してくださった @ghui-zhang さんに感謝します。


最終更新(AS 3.0 ベータ 2 で修正)

Jordan Bondo 氏のコメントにあるように、問題を修正するプラグイン 3.0.0-beta2 を含む AS 3.0 Beta 2 はすでにリリースされています。

したがって、解決策は、プラグインを 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+ の try-with-resources を処理し、それらのクラスをパッケージ化しないことです。

アップデート3: JavaコードでJava 8の機能を使用しない場合は無効にします(これはKotlinコードベースでも役立ちます)。このコメント

おすすめ記事