Picasso: Impossible de trouver la classe "com.squareup.picasso.PicassoProvider

Créé le 29 oct. 2019  ·  4Commentaires  ·  Source: square/picasso

J'ai essayé de mettre à jour la dépendance mais cela n'a pas fonctionné.

2019-10-29 12:01:07.723 21430-21430/com.johnny.john.bakingapp E/AndroidRuntime : EXCEPTION FATALE : principal
Processus : com.johnny.john.bakingapp, PID : 21430
java.lang.RuntimeException : impossible d'obtenir le fournisseur com.squareup.picasso.PicassoProvider : java.lang.ClassNotFoundException : la classe "com.squareup.picasso.PicassoProvider" n'a pas été trouvée sur le chemin : app/com.johnny.john.bakingapp-Hv0j5sXQnQA3WUTrON11KQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.johnny.john.bakingapp-Hv0j5sXQnQA3WUTrON11KQ==/lib/x86, /system/lib, / vendeur/lib]]
sur android.app.ActivityThread.installProvider(ActivityThread.java:6288)
sur android.app.ActivityThread.installContentProviders(ActivityThread.java:5851)
sur android.app.ActivityThread.handleBindApplication(ActivityThread.java:5772)
sur android.app.ActivityThread.-wrap1 (Source inconnue : 0)
sur android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661)
sur android.os.Handler.dispatchMessage(Handler.java:105)
sur android.os.Looper.loop(Looper.java:164)
sur android.app.ActivityThread.main(ActivityThread.java:6541)
à java.lang.reflect.Method.invoke (méthode native)
sur com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
sur com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Causé par : java.lang.ClassNotFoundException : impossible de trouver la classe "com.squareup.picasso.PicassoProvider" sur le chemin : DexPathList[[zip file "/data/app/com.johnny.john.bakingapp-Hv0j5sXQnQA3WUTrON11KQ==/base .apk"],nativeLibraryDirectories=[/data/app/com.johnny.john.bakingapp-Hv0j5sXQnQA3WUTrON11KQ==/lib/x86, /system/lib, /vendor/lib]]
sur dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
à java.lang.ClassLoader.loadClass(ClassLoader.java:379)
à java.lang.ClassLoader.loadClass(ClassLoader.java:312)

Commentaire le plus utile

J'ai frappé cette même erreur et je suis venu ici aussi.

2020-06-29 11:15:23.512 25599-25599/com.myactionreplay.rlpitchside E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.myactionreplay.rlpitchside, PID: 25599
    java.lang.RuntimeException: Unable to get provider com.squareup.picasso.PicassoProvider: java.lang.ClassNotFoundException: Didn't find class "com.squareup.picasso.PicassoProvider" on path: DexPathList[[zip file "/data/app/com.myactionreplay.rlpitchside-xxTE8QNlI0Yuy3q8DJx4SQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.myactionreplay.rlpitchside-xxTE8QNlI0Yuy3q8DJx4SQ==/lib/arm64, /system/lib64, /system/vendor/lib64]]
        at android.app.ActivityThread.installProvider(ActivityThread.java:6581)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6133)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6043)
        at android.app.ActivityThread.-wrap1(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6944)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.squareup.picasso.PicassoProvider" on path: DexPathList[[zip file "/data/app/com.myactionreplay.rlpitchside-xxTE8QNlI0Yuy3q8DJx4SQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.myactionreplay.rlpitchside-xxTE8QNlI0Yuy3q8DJx4SQ==/lib/arm64, /system/lib64, /system/vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at android.app.ActivityThread.installProvider(ActivityThread.java:6566)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6133) 
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6043) 
        at android.app.ActivityThread.-wrap1(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764) 
        at android.os.Handler.dispatchMessage(Handler.java:105) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6944) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) 
        Suppressed: java.io.IOException: Failed to open dex files from /data/app/com.myactionreplay.rlpitchside-xxTE8QNlI0Yuy3q8DJx4SQ==/base.apk because: Failure to verify dex file '/data/app/com.myactionreplay.rlpitchside-xxTE8QNlI0Yuy3q8DJx4SQ==/base.apk': Bad method handle type 7
        at dalvik.system.DexFile.openDexFileNative(Native Method)
        at dalvik.system.DexFile.openDexFile(DexFile.java:353)
        at dalvik.system.DexFile.<init>(DexFile.java:100)
        at dalvik.system.DexFile.<init>(DexFile.java:74)
        at dalvik.system.DexPathList.loadDexFile(DexPathList.java:374)
        at dalvik.system.DexPathList.makeDexElements(DexPathList.java:337)
        at dalvik.system.DexPathList.<init>(DexPathList.java:157)
        at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65)
        at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
        at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43)
        at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:69)
        at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:36)
        at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:678)
        at android.app.LoadedApk.getClassLoader(LoadedApk.java:711)
        at android.app.LoadedApk.getResources(LoadedApk.java:944)
        at android.app.ContextImpl.createAppContext(ContextImpl.java:2303)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5943)
                ... 8 more

Le vrai problème est Bad method handle type 7 . Cela est dû à l'utilisation d'une méthode qui est un invocateur pour une méthode directe (spéciale). C'était un bogue dans mon application en utilisant Picasso 2.71828 avec Retrofit 2.9.0 mais sans ajouter les options de compilation Java 8 à mon fichier build.gradle. Retrofit requires at minimum Java 8+ or Android API 21+. (https://square.github.io/retrofit/).

Cela l'a réglé pour moi.

android {
    ....
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

Tous les 4 commentaires

PicassoProvider a été supprimé au profit de la création et de la gestion de vos propres instances Picasso à l'aide d'une DI manuelle ou basée sur un framework.

Je n'ai rien compris à ce que vous avez dit. Comment résoudre ce problème ?

PicassoProvider a été supprimé ici : https://github.com/square/picasso/pull/2057

Au lieu de cela, créez votre propre objet Picasso et passez-le là où vous en avez besoin.

J'ai frappé cette même erreur et je suis venu ici aussi.

2020-06-29 11:15:23.512 25599-25599/com.myactionreplay.rlpitchside E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.myactionreplay.rlpitchside, PID: 25599
    java.lang.RuntimeException: Unable to get provider com.squareup.picasso.PicassoProvider: java.lang.ClassNotFoundException: Didn't find class "com.squareup.picasso.PicassoProvider" on path: DexPathList[[zip file "/data/app/com.myactionreplay.rlpitchside-xxTE8QNlI0Yuy3q8DJx4SQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.myactionreplay.rlpitchside-xxTE8QNlI0Yuy3q8DJx4SQ==/lib/arm64, /system/lib64, /system/vendor/lib64]]
        at android.app.ActivityThread.installProvider(ActivityThread.java:6581)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6133)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6043)
        at android.app.ActivityThread.-wrap1(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6944)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.squareup.picasso.PicassoProvider" on path: DexPathList[[zip file "/data/app/com.myactionreplay.rlpitchside-xxTE8QNlI0Yuy3q8DJx4SQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.myactionreplay.rlpitchside-xxTE8QNlI0Yuy3q8DJx4SQ==/lib/arm64, /system/lib64, /system/vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at android.app.ActivityThread.installProvider(ActivityThread.java:6566)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6133) 
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6043) 
        at android.app.ActivityThread.-wrap1(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764) 
        at android.os.Handler.dispatchMessage(Handler.java:105) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6944) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) 
        Suppressed: java.io.IOException: Failed to open dex files from /data/app/com.myactionreplay.rlpitchside-xxTE8QNlI0Yuy3q8DJx4SQ==/base.apk because: Failure to verify dex file '/data/app/com.myactionreplay.rlpitchside-xxTE8QNlI0Yuy3q8DJx4SQ==/base.apk': Bad method handle type 7
        at dalvik.system.DexFile.openDexFileNative(Native Method)
        at dalvik.system.DexFile.openDexFile(DexFile.java:353)
        at dalvik.system.DexFile.<init>(DexFile.java:100)
        at dalvik.system.DexFile.<init>(DexFile.java:74)
        at dalvik.system.DexPathList.loadDexFile(DexPathList.java:374)
        at dalvik.system.DexPathList.makeDexElements(DexPathList.java:337)
        at dalvik.system.DexPathList.<init>(DexPathList.java:157)
        at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65)
        at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
        at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43)
        at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:69)
        at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:36)
        at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:678)
        at android.app.LoadedApk.getClassLoader(LoadedApk.java:711)
        at android.app.LoadedApk.getResources(LoadedApk.java:944)
        at android.app.ContextImpl.createAppContext(ContextImpl.java:2303)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5943)
                ... 8 more

Le vrai problème est Bad method handle type 7 . Cela est dû à l'utilisation d'une méthode qui est un invocateur pour une méthode directe (spéciale). C'était un bogue dans mon application en utilisant Picasso 2.71828 avec Retrofit 2.9.0 mais sans ajouter les options de compilation Java 8 à mon fichier build.gradle. Retrofit requires at minimum Java 8+ or Android API 21+. (https://square.github.io/retrofit/).

Cela l'a réglé pour moi.

android {
    ....
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
Cette page vous a été utile?
0 / 5 - 0 notes