Android app ClassNotFoundException de l'activité principale
La plupart des appareils peuvent fonctionner mon application mais j'ai eu ce rapport d'erreur :
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.company.app/com.company.app.MainActivity}: java.lang.ClassNotFoundException: com.company.app.MainActivity in loader dalvik.system.PathClassLoader[/mnt/asec/com.company.app-1/pkg.apk]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2755)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2854)
at android.app.ActivityThread.access$2300(ActivityThread.java:136)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2179)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:5068)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.company.app.MainActivity in loader dalvik.system.PathClassLoader[/mnt/asec/com.company.app-1/pkg.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
at android.app.Instrumentation.newActivity(Instrumentation.java:1034)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2747)
... 11 more
J'y ai trouvé une réponse:
ClassNotFoundException Android
mais la question est, mon exception se produit avant n'importe quelle ligne de code que j'ai écris, alors comment puis-je m'assurer que le chargeur de classe est chargé?
- Avez-vous défini votre Activité dans Menifest fichier?
- La carte SD est retirée ou monté sur un PC stackoverflow.com/questions/4820554/... stackoverflow.com/questions/5483947/...
- La carte SD est retirée ou monté sur un PC stackoverflow.com/questions/4820554/... stackoverflow.com/questions/5483947/...
- Vous avez trouvé la bonne réponse, finalement?
- Dans mon cas, le problème a été causé par la mise à jour du SDK de la version 22. J'ai été en mesure de résoudre ce problème à l'aide de cette question: stackoverflow.com/questions/16585964/...
Vous devez vous connecter pour publier un commentaire.
J'ai eu exactement le même problème. Soudain, mon application a cessé de fonctionner. Je didint tout changement de manifester, mais avec un accident, il manquait première ligne:
<?xml version="1.0" encoding="utf-8"?>
Cela a provoqué
ClassNotFoundException
pour le lanceur d'activité. J'ai eu du mal avec ça pour quelques heures et j'ai oublié ce à chaque fois que j'ai été vérifier manifeste pour une éventuelle erreur.Chose d'étrange est arrivé après que j'ai supprimé cette ligne de nouveau. Surprise, surprise application fonctionnait encore. (et je n'ai pas oublier de reconstruire app)
Espère que cela aide quelqu'un pour sauver quelques heures.
gradle clean
, depuis l'ancien APK de débogage est toujours pas correcte.J'obtiens cette erreur quand ma classe n'est pas correctement défini dans le manifeste, généralement parce que je n'ai pas mis dans le bon nom de l'espace comme dans:
par opposition à
Pas pourquoi il serait travailler pour vous sur certains appareils, et pas d'autres.
Veuillez fermer votre eclipse et ouvert. Le nettoyage de votre projet et de faire un refresh. Puis exécuter et voir.
J'ai eu le même problème et le problème était d'une bibliothèque tierce qui utilise Android Support Library.
Lorsque j'ai mis à jour la bibliothèque avec la version la plus récente, la bibliothèque de prise en charge a également été mis à jour - mais pas dans mon projet. Après que je ne pouvais pas lancer l'application avec cette erreur. Après avoir fait les deux bibliothèques de la même (copie), c'était ok.
Dans eclipse, vérifiez les Propriétés>Java Build Path>Source et voir si le dossier de sortie par défaut est toujours (/bin/classes).
Pour moi, c'était un problème en raison du plugin maven: à chaque fois que je clic droit>Maven>Projet de mise à Jour...>Ok, il change le dossier de sortie de la src dossier target/classes, provoquant ClassNotFoundException.
/target/classes
. D'où le classe pas trouvé d'erreur en raison de son dans le mauvais chemin!!!J'ai eu ce problème depuis quelques jours. J'ai pu lancer mon application sur chaque environnement de test, je peux exporter une version apk et de l'installer et de l'exécuter sur chaque environnement de test, mais quand j'ai téléchargé l'apk du play store et installé à partir du play store l'application serait de fource à proximité de jeter ClassNotFoundException. Il s'est avéré que dans mon projet, j'ai été l'envoi fractionné, les données de formulaire à une api web, et cela nécessite certaines bibliothèques externes. Au début, j'ai inclus tous les
mim4j
,httpclient
, ethttpcore
.jars
(qui s'avère être un lot de pots).Après la suppression de presque tous un par un et voir si mon projet serait de toujours construire, j'ai été laissé avec un seul pot de QUI ÉTAIT RÉELLEMENT NÉCESSAIRE. Le take away est de supprimer tous les pots qui ne sont pas nécessaires à la construction. Puis j'ai testé l'application et de s'avère que j'ai besoin d'ajouter l'un des pots de retour en raison de ses ressources ont été référencés par celui qui a été nécessaire à la construction du projet. Assurez-vous de tester toutes les fonctions de votre application après la suppression des bocaux.
Puis je suis passé par chaque projet de bibliothèque, j'ai été compris et suis allé faire un clic droit sur
project -> properties -> java build path -> order and export
et coché toutes les cases POUR TOUTES les bibliothèques et MON PROPRE PAQUET.Puis j'ai fait une
project -> clean
sur chaque projet qui est inclus et le projet principal.J'ai ensuite exporté l'apk et de mettre le paquet pour le test beta et il a finalement travaillé sur les utilisateurs des appareils.
Je suis tombé sur ce problème et il a été fixé à l'aide de cette.
Je n'avais pas vérifié l'une bibliothèque externe en vertu de "l'Ordre et à l'exportation" et j'ai été l'obtention de l'erreur.
Aucune des réponses ci-dessus a fonctionné pour moi, contribuant ma solution si elle va de rechange de quelques heures, pour n'importe qui dans l'avenir.
Ce qui apparemment a fonctionné pour moi a été la suppression d'un soutien supplémentaire lib v4 pot dans mon projet.
Après j'ai mis à jour le soutien lib via android outils, j'ai dû fixer pot décalages dans de nombreuses bibliothèques que j'utilise et le point tous dans le même bocal dans l'android-sdk dossier.
J'ai accidentellement ajouté à mon projet, et pour quelque raison il a fait ma classe MainActivity introuvable lors de l'exécution, parce que le pot était aussi dans l'android-support-v7-appcompat bibliothèque, j'ai été à l'aide.
Pas d'erreurs sur eclipse à tous.
J'ai enlevé le pot de mon projet, et vérifié le pot dans la v7 appcompat de la bibliothèque dans l'onglet export de sorte qu'il serait à la disposition de mon projet, et le tour est joué, l'app fonctionne.
Je viens de tomber sur ce problème. Il s'avère que c'était parce que j'avais déplacé mon MainActivity dans un nouveau package.
Ce que j'ai fait était de déplacer de
en
donc dans mon manifeste, elle ressemblait à ça:
Résolu en le déplaçant dans l'emballage d'origine. Il peut également être résolu par le fait de renommer vos paquets correctement:
Par exemple:
com.example.Activity.MainActivity
Espère que cela aide quelqu'un.
Grâce au contrôle de version, j'ai remarqué que je n'ai pas ces lignes dans mon .classpath fichier xml:
Ces causé la Classe n'est pas trouvé pour l'activité principale.
J'ai eu la même lors de l'exécution Robolectric tests. En fait, le test classpath comprend pot avec android.com.L'activité, qui n'a pas été fondée.
Une solution dans mon cas, c'est rétrograder JAVA_HOME à partir de la 10ème version de JDK, qui est utilisé dans le projet Maven.
J'ai fait un copier/coller des dossiers suivants pour un nouveau projet, en gardant le même nom de package, et résolu:
Et enfin j'ai ajouté le fichier de dépendances
build.gradle
.GL