Fresco: java.lang.NoClassDefFoundError:解決に失敗しました:Landroidx / core / util / Pools $ SynchronizedPool;

作成日 2019年06月30日  ·  11コメント  ·  ソース: facebook/fresco

このライブラリは1.9.0で正常に動作していました。

2.0.0にアップデートしたところ、このエラーが発生しました。

1.9.0にダウングレードするか、1.13.0でテストしました。 うまくいきました。

したがって、2.0.0には、この行でアプリがクラッシュするという問題があります。

Fresco.initialize(this);

詳細については。 私もうまくいかなかったこれらの解決策を試しました。

implementation 'com.android.support:support-compat:28.0.0'

また、gradle.propertiesにこの行を追加しても機能しませんでした。

android.enableJetifier = false

以下のログ出力があります。 ありがとう

--------- beginning of crash 06-30 12:16:38.778 5360-5360/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.my.app, PID: 5360 java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/core/util/Pools$SynchronizedPool; at com.facebook.imagepipeline.platform.PlatformDecoderFactory.buildPlatformDecoder(PlatformDecoderFactory.java:34) at com.facebook.imagepipeline.core.ImagePipelineFactory.getPlatformDecoder(ImagePipelineFactory.java:304) at com.facebook.imagepipeline.core.ImagePipelineFactory.getPlatformBitmapFactory(ImagePipelineFactory.java:296) at com.facebook.imagepipeline.core.ImagePipelineFactory.getAnimatedFactory(ImagePipelineFactory.java:159) at com.facebook.imagepipeline.core.ImagePipelineFactory.getImageDecoder(ImagePipelineFactory.java:219) at com.facebook.imagepipeline.core.ImagePipelineFactory.getProducerFactory(ImagePipelineFactory.java:319) at com.facebook.imagepipeline.core.ImagePipelineFactory.getProducerSequenceFactory(ImagePipelineFactory.java:350) at com.facebook.imagepipeline.core.ImagePipelineFactory.getImagePipeline(ImagePipelineFactory.java:276) at com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.<init>(PipelineDraweeControllerBuilderSupplier.java:53) at com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.<init>(PipelineDraweeControllerBuilderSupplier.java:44) at com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.<init>(PipelineDraweeControllerBuilderSupplier.java:37) at com.facebook.drawee.backends.pipeline.Fresco.initializeDrawee(Fresco.java:96) at com.facebook.drawee.backends.pipeline.Fresco.initialize(Fresco.java:85) at com.facebook.drawee.backends.pipeline.Fresco.initialize(Fresco.java:38) at com.my.app.activities.MainActivity.onCreate(MainActivity.java:77) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.core.util.Pools$SynchronizedPool" on path: DexPathList[[zip file "/data/app/com.my.app-2/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-2/lib/x86, /vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at com.facebook.imagepipeline.platform.PlatformDecoderFactory.buildPlatformDecoder(PlatformDecoderFactory.java:34)  at com.facebook.imagepipeline.core.ImagePipelineFactory.getPlatformDecoder(ImagePipelineFactory.java:304)  at com.facebook.imagepipeline.core.ImagePipelineFactory.getPlatformBitmapFactory(ImagePipelineFactory.java:296)  at com.facebook.imagepipeline.core.ImagePipelineFactory.getAnimatedFactory(ImagePipelineFactory.java:159)  at com.facebook.imagepipeline.core.ImagePipelineFactory.getImageDecoder(ImagePipelineFactory.java:219)  at com.facebook.imagepipeline.core.ImagePipelineFactory.getProducerFactory(ImagePipelineFactory.java:319)  at com.facebook.imagepipeline.core.ImagePipelineFactory.getProducerSequenceFactory(ImagePipelineFactory.java:350)  at com.facebook.imagepipeline.core.ImagePipelineFactory.getImagePipeline(ImagePipelineFactory.java:276)  at com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.<init>(PipelineDraweeControllerBuilderSupplier.java:53)  at com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.<init>(PipelineDraweeControllerBuilderSupplier.java:44)  at com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilderSupplier.<init>(PipelineDraweeControllerBuilderSupplier.java:37)  at com.facebook.drawee.backends.pipeline.Fresco.initializeDrawee(Fresco.java:96)  at com.facebook.drawee.backends.pipeline.Fresco.initialize(Fresco.java:85)  at com.facebook.drawee.backends.pipeline.Fresco.initialize(Fresco.java:38)  at com.my.app.activities.MainActivity.onCreate(MainActivity.java:77)  at android.app.Activity.performCreate(Activity.java:5990)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)  at android.app.ActivityThread.access$800(ActivityThread.java:151)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:135)  at android.app.ActivityThread.main(ActivityThread.java:5254)  at java.lang.reflect.Method.invoke(Native Method)  at java.lang.reflect.Method.invoke(Method.java:372)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)  Suppressed: java.lang.ClassNotFoundException: androidx.core.util.Pools$SynchronizedPool at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 29 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

最も参考になるコメント

やあみんな、

最近、フレスコバージョンを1.9.0から2.0.0に移行しましたが、アプリはAndroid P上にあります。AndroidXサポートライブラリがないため、同じ問題に直面していました。AndroidXサポートライブラリへの移行は魅力のように機能しますが、何らかの理由でAndroidXに移行できない場合はv1.13.0を使用して正常に動作しますが、 @ oprisnikが何らかの理由で動作しなかったと言ったように、

これが誰かを助けることを願っています:)

implementation 'com.facebook.fresco:fresco:1.13.0'
implementation 'com.facebook.fresco:animated-gif:1.13.0'

全てのコメント11件

バージョン2.0には、AndroidXサポートライブラリが必要です。 アプリが引き続きレガシーサポートライブラリを使用している場合は、アップグレードするまで1.14.2を使用してください。 2.0.0の変更ログをまもなく投稿します。

@oprisnikに感謝します。 AndroidXサポートライブラリへの移行が機能しました。 問題は解決された :)

素晴らしい。 私は変更ログに取り組んでいます。まもなく利用可能になるはずです。 そのために残念 :)

変更ログが利用可能になりました: https

AndroidX以外のビルドの場合は、引き続きv1.13.0を使用してください

やあみんな、

最近、フレスコバージョンを1.9.0から2.0.0に移行しましたが、アプリはAndroid P上にあります。AndroidXサポートライブラリがないため、同じ問題に直面していました。AndroidXサポートライブラリへの移行は魅力のように機能しますが、何らかの理由でAndroidXに移行できない場合はv1.13.0を使用して正常に動作しますが、 @ oprisnikが何らかの理由で動作しなかったと言ったように、

これが誰かを助けることを願っています:)

implementation 'com.facebook.fresco:fresco:1.13.0'
implementation 'com.facebook.fresco:animated-gif:1.13.0'

変更ログが利用可能になりました: https

AndroidX以外のビルドの場合は、引き続きv1.14.2を使用してください

v1.14.2の使用にはまだ問題があります
image

変更ログが利用可能になりました: https
AndroidX以外のビルドの場合は、引き続きv1.14.2を使用してください

v1.14.2の使用にはまだ問題があります
image

v1.13.0を使用すると問題が修正されました

バージョン2.0には、AndroidXサポートライブラリが必要です。 アプリが引き続きレガシーサポートライブラリを使用している場合は、アップグレードするまで1.14.2を使用してください。 2.0.0の変更ログをまもなく投稿します。

バージョンを1.14.2にダウングレードしましたが、このエラーは引き続き発生していました。

@iamsdkください。https: //github.com/facebook/fresco/issues/2365#issuecomment-510322092は無視して

@iamsdk v1.13.0を試し#2365(コメント)は無視してください。

はい、v1.13.0を試しましたが、まだ機能しませんでした。そのため、プロジェクトをandroidxにマージしましたが、現在は正常に機能しています。

@iamsdk v1.13.0を試し#2365(コメント)は無視してください。

ご協力いただきありがとうございます。

このページは役に立ちましたか?
0 / 5 - 0 評価