アップグレード後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)
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コードベースにも役立ちます。) このコメント を参照してください。
AS 3.0 Beta 1にアップグレードした後も同じエラーが発生し、回避策が見つかりました: Googleのソース からThrowableExtension.Java
ファイルのコピーを作成し、app\src\main\Java\com\google\devtools\build\Android\desugar\runtime
(それらのフォルダを作成する必要があります)。
この問題はAndroid Studio 3.0.1。新しいGoogleスレッドは https://issuetracker.google.com/issues/77591528 です。
まだこの問題が発生している場合はスレッドにスターを付け、実行中の問題を投稿してください。