Causés par: java.lang.NoClassDefFoundError: Classe non trouvée à l'aide de la classe boot loader; pas de trace de pile disponible
J'ai essayé d'utiliser OkHttp et Picasso (après cette réponse) pour la mise en cache disque des images que j'étais le téléchargement de Firebase de stockage. Maintenant, l'application offre les exceptions et les accidents. J'ai vu ces posts: post 1, post 2 mais je ne trouve pas de solutions appropriées. J'ai aussi essayé de le nettoyer et de reconstruire le projet, mais n'a pas de chance.
Ici est construire.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "social.com.networking.social.media.app"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
multiDexEnabled true
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:design:25.1.0'
compile 'br.com.mauker.materialsearchview:materialsearchview:1.2.0'
compile 'com.alirezaafkar:toolbar:1.1.1'
compile 'com.github.mancj:MaterialSearchBar:0.3.5'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.daimajia.slider:library:1.1.5@aar'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.firebase:firebase-ads:10.0.1'
compile 'com.google.firebase:firebase-messaging:10.0.1'
compile "com.google.firebase:firebase-auth:10.0.1"
compile 'com.google.firebase:firebase-storage:10.0.1'
compile 'com.google.firebase:firebase-crash:10.0.1'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.0.2'
compile 'com.android.support:multidex:1.0.1'
compile 'org.parceler:parceler-api:1.1.6'
annotationProcessor 'org.parceler:parceler:1.1.6'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
Plein Stacktrace:
Process: social.com.networking.social.media.app, PID: 28258
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/squareup/okhttp/OkHttpClient;
at com.squareup.picasso.OkHttpDownloader.defaultOkHttpClient(OkHttpDownloader.java:31)
at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:76)
at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:65)
at social.com.networkingsocialmediaapp.Global.onCreate(Global.java:17)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1018)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4991)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1555)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.squareup.okhttp.OkHttpClient" on path: DexPathList[[zip file "/data/app/social.com.networking.social.media.app-2/base.apk"],nativeLibraryDirectories=[/data/app/social.com.networking.social.media.app-2/lib/arm64, /vendor/lib64, /system/lib64]]
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.squareup.picasso.OkHttpDownloader.defaultOkHttpClient(OkHttpDownloader.java:31)
at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:76)
at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:65)
at social.com.networkingsocialmediaapp.Global.onCreate(Global.java:17)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1018)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4991)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1555)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Suppressed: java.lang.ClassNotFoundException: com.squareup.okhttp.OkHttpClient
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)
... 15 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
Edit 1:
Je l'ai activé MultiDex comme Redman dit, mais il donne toujours la même erreur. Selon cette: developer.android.com/studio/build/multidex.html#keep, j'ai besoin de décider quelles classes sont nécessaires dans la base APK. Comment puis-je déterminer les classes sont nécessaires?
OriginalL'auteur Shubham Shukla | 2017-02-01
Vous devez vous connecter pour publier un commentaire.
Dans Android Studio 2.3 et supérieur, Il est Instant Exécuter qui peuvent affecter votre code.
Désactiver
Instant Run
Fichier -> Paramètres -> Construire, l'Exécution, le Déploiement -> Instant Exécuter
OriginalL'auteur Kishore Jethava
1)de bien vouloir désinstaller l'application à partir de votre mobile
2)Réinstaller l'application à partir d'android studio
3)98%, il travail reste propre au projet et de le réinstaller à nouveau
OriginalL'auteur Kulasekar
Vous devrez peut-être activer multidex, suivez le guide à partir de ce
https://developer.android.com/studio/build/multidex.html ,pour permettre multidex
suivre stackoverflow.com/a/31724082/6478047 cette réponse, ou stackoverflow.com/a/37084656/6478047 cette réponse
OriginalL'auteur Manohar Reddy
Mon Code de façon compilation bien sur l'appareil en utilisant le câble USB, mais quand j'ai essayé de l'installer à l'aide de *.fichier apk il était en rupture, de sorte que j'ai décoché l'option Fichier -> Paramètres -> Construire, l'Exécution, le Déploiement -> Instant Exécuter, mais maintenant sa fonctionne bien avec *.fichier apk et le démarrage d'une rupture avec l'installation sur clé USB, le message d'erreur est dans le attachec image, même si j'appuie sur OK, il ne fonctionne pas, quand j'essaie yo installer à nouveau le même message d'erreur s'affiche.
OriginalL'auteur Shamim Ahmad
Juste retirer votre projet de construction de dossier, puis nettoyer et exécuter votre application. Cela a fait l'affaire pour moi...
OriginalL'auteur Rezaul Karim
Essayez de supprimer .gradle dossier de projet.
OriginalL'auteur Zon
J'ai aussi eu ce problème, et il n'est pas possible d'éteindre l'instant exécuter.Plus tard, j'ai trouvé que j'ai supprimé tous les fichiers dans le cadre du dossier de cache, puis nettoyez le projet.Mon répertoire est C:\Users\ HDB . Android \ construit-cache.J'espère que je peux aider d'autres personnes qui rencontre ce bug.
OriginalL'auteur hepeng
Pour moi, ce problème a été résolu par Désactiver l'Instant Exécuter
Juste aller dans les Préférences -> Construire, l'Exécution, le Déploiement -> Instant Exécuter -> Désactiver l'option
Et redémarrez l'application
OriginalL'auteur Mayuresh Satao
(Je sais c'est une vieille question, mais je suis venu ici à la recherche d'une solution à un problème similaire.)
J'ai une réponse différente à considérer avant vous avez épuisé toutes les autres suggestions ci-dessus: ClassNotFoundException: YourParcelableClass erreur ne peut pas être le problème. En fait, il peut ne pas être un problème.
J'ai une application qui affiche un écran d'une variété de contenu qui est transmis comme un Parcelable et rendu au format HTML dans une WebView; il a été génial de travailler jusqu'à ce que j'ai nettoyé le code, extrait, extrait d'une propreté nouvel arbre, et désinstallé & réinstallé l'appli sur mon téléphone. J'ai commencé à avoir un écran vide; il est évident que ClassNotFoundException dans le journal signifiait mon contenu n'était pas unmarshalled correctement.
Après au moins d'une heure de désactivation Instantanée Exécuter,
rm -rf .gradle
, Nettoyage de Projet, d'Invalider les Caches & Redémarrer, etc., etc., J'ai commencé à ajouter de plus en plus la santé mentale-interrogatoire de journalisation jusqu'à ce que j'ai compris que je était l'obtention de mon contenu deIntent.getParcelableExtra()
; le vide de l'écran semble être sans rapport avec la! (Je ne sais toujours pas pourquoi, maisWebView.loadData()
avait cessé de travailler, et a dû être remplacé parWebView.loadDataWithBaseURL()
.)J'espère que cela sauve quelqu'un d'autre à une heure de la bêtise. Si vous voyez que ClassNotFoundException avec votre classe nom, vérifier pour voir si vos objets sont encore en cours de unmarshalled correctement, ils peuvent être!
OriginalL'auteur kuhrusty
J'ai trouvé un autre "réponse" à la question. J'ai fait le même message d'erreur à l'aide de Android Studio 3.3.2. J'ai décidé d'effacer TOUS les points d'arrêt. Sur les points d'arrêt de dialogue il y a deux "permanant" options, Java Exception des points d'arrêt et à l'Exception des points d'arrêt. je les ai eu à la fois vérifié, par hasard sans doute. Quand je suis eux et à d'autres points de rupture j'ai pu courir sous le mode de Débogage. Maintenant que le débogage est en cours d'exécution je peux ajouter des points de rupture tant que celles-ci ne sont pas vérifiées!
OriginalL'auteur Wild Will
Cette erreur se produit également en raison des différences dans les bibliothèques de la version de la spécification qui peut conduire à des erreurs d'exécution.
Toujours utiliser les mêmes versions de bibliothèques dans la construction.gradle.
Par exemple:
Utiliser ceci:
Au lieu de:
OriginalL'auteur Kartikeya Kapparwan