web-dev-qa-db-ja.com

RxJavaPluginsエラークラス「com.google.devtools.build.Android.desugar.runtime.ThrowableExtension」が見つかりませんでした

アップグレード後Android Studio 3.0 Beta 1で次のエラーが発生しました。ダウングレードするとエラーが消えました。

Studio Build:Android GradleプラグインのStudio 3.0 Beta 1バージョン: '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) 
28
Bulu

Update(Gradleプラグイン3.0.0-beta5で引き続き動作、@ TmTronにより確認)

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

Update(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'

Update(AS 3.0 Beta 3での回帰)

この問題はベータ3に戻っています。Googleはすでに問題を認識しており、再開しました。 https://issuetracker.google.com/issues/6452752 を参照してください

将来のベータ4で修正され、リリース待ちです。

報告してくれた@yvolkと、確認してくれた@ ghui-zhangに感謝します。


最終更新(AS 3.0 Beta 2で修正)

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

そのため、解決策は、プラグインを3.0.0-beta1から少なくとも3.0.0-beta2にアップグレードすることです。


履歴

Googleはこの問題でこの問題を優先度P0(これが最優先)で処理しています: https://issuetracker.google.com/issues/6452752

それまでの間、@ edgarsの回避策が私を助けてくれました。ありがとう!

更新2修正済み、次のベータのスケジュール "修正はプラグイン3.0.0-beta2 ")になります

更新追加の回避策 Google社員と共有:

一時的な回避策は、最小SDKバージョンを19未満に設定することです。問題は、DesugarがAPI 19+のtry-with-resourcesを処理することですが、プラットフォームはサポートしていますが、これらのクラスをパッケージ化しません。

Update 3:Java 8コードのJavaコード、無効化それ(これはKotlinコードベースにも役立ちます。) このコメント を参照してください。

23

AS 3.0 Beta 1にアップグレードした後も同じエラーが発生し、回避策が見つかりました: Googleのソース からThrowableExtension.Javaファイルのコピーを作成し、app\src\main\Java\com\google\devtools\build\Android\desugar\runtime(それらのフォルダを作成する必要があります)。

21
Edgars

この問題はAndroid Studio 3.0.1。新しいGoogleスレッドは https://issuetracker.google.com/issues/77591528 です。

まだこの問題が発生している場合はスレッドにスターを付け、実行中の問題を投稿してください。

1
Marline