Java.lang.ClassNotFoundException sur une application qui fonctionne sur l'émulateur


Mon application fonctionne bien sur l'émulateur, mais j'ai eu cette erreur après avoir installé l'application sur les appareils réels en utilisant apk.

FATAL EXCEPTION: main
Process: com.example.wiserlab.macquest, PID: 9151
java.lang.RuntimeException: Unable to get provider com.example.wiserlab.macquest.model.CustomContentProvider: java.lang.ClassNotFoundException: Didn't find class "com.example.wiserlab.macquest.model.CustomContentProvider" on path: DexPathList[[zip file "/data/app/com.example.wiserlab.macquest-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.wiserlab.macquest-1, /vendor/lib, /system/lib]]
        at android.app.ActivityThread.installProvider(ActivityThread.java:4777)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:4369)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4309)
        at android.app.ActivityThread.access$1500(ActivityThread.java:135)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5001)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
        at dalvik.system.NativeStart.main(Native Method)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.wiserlab.macquest.model.CustomContentProvider" on path: DexPathList[[zip file "/data/app/com.example.wiserlab.macquest-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.wiserlab.macquest-1, /vendor/lib, /system/lib]]

Je suis sûr que cette classe existe. Dois-je importer cette classe ailleurs?

Merci!

Author: chen, 2017-08-23

2 answers

Si vous avez proguard activé, peut-être que votre code est ofuscated et que le crash concerne certaines fonctionnalités qui utilisent la réflexion comme Gson.

Vérifiez que le type de build dans l'émulateur est le même que les périphériques réels (dans debug). Vous pouvez également essayer de définir useProguard false dans vos paramètres BuildType.

 1
Author: Julián Falcionelli, 2017-08-22 23:43:01

Le problème est résolu en supprimant le dossier de construction et en le reconstruisant.

 0
Author: chen, 2017-08-23 02:28:29