java - NoClassDefFoundError - Eclipse et Android





ant build (23)


J'ai tout essayé depuis ce post (et d'autres messages), et cela n'a pas fonctionné pour moi, c'est de loin la plus mauvaise mise à jour ADT que j'ai connue, et je ne mettrai jamais à jour sans une sauvegarde ADT.

J'ai réussi à le résoudre en supprimant le projet, puis en l'ajoutant à nouveau en utilisant une sauvegarde source que j'avais.

J'ai un problème en essayant d'exécuter une application Android qui, jusqu'à l'ajout d'une deuxième bibliothèque externe à son chemin de compilation, fonctionnait correctement. Depuis que j'ai ajouté le fichier scoreninja jar, je reçois maintenant une classe NoClassDefFoundError lorsque j'essaie d'exécuter l'application.

Voici le message:

02-11 21:45:26.154: ERROR/AndroidRuntime(3654): java.lang.NoClassDefFoundError: com.scoreninja.adapter.ScoreNinjaAdapter

Comme tous les scripts de construction sont générés par les outils Android (?), Je ne sais pas ce que je peux faire d'autre que nettoyer et reconstruire ou redémarrer eclipse (j'ai déjà essayé tous les trois). Est-ce que quelqu'un sait comment je peux modifier cela?




parfois, vous devez prendre l'ensemble du projet externe en tant que bibliothèque et pas seulement le pot:

mon problème résolu en ajoutant le projet entier (dans mon cas google-play-services_lib) comme bibliothèque et pas seulement le pot. les étapes pour y arriver (à partir de la réponse @style ):

  1. Fichier-> Nouveau-> Autre
  2. Sélectionnez un projet Android
  3. Sélectionnez "Créer un projet à partir d'une source existante"
  4. Cliquez sur le bouton "Parcourir ..." et naviguez jusqu'au projet souhaité
  5. Terminer (Projet de barre d'action maintenant dans votre espace de travail)
  6. Faites un clic droit sur votre projet -> Propriétés
  7. Dans la section "Android-> Bibliothèque", cliquez sur "Ajouter".
  8. sélectionnez un projet récemment ajouté -> Ok



Si vous modifiez votre commande et exportez dans le chemin de compilation de votre projet, cette erreur ne se produira pas. L'autre façon de l'atteindre est via .classpath dans votre dossier de projet.




Je ne suis pas sûr si c'est lié, ou si vous recherchez toujours une réponse, mais je suis tombé sur ce fil tout en essayant de rechercher la même erreur (mais probablement pour des raisons différentes).

Je n'ai pas trouvé de solutions en ligne, mais une réponse sur un fil similaire m'a fait réfléchir et réalisé que je devais probablement juste reconstruire (ou nettoyer) le projet.

Dans Eclipse, allez dans Projet => Nettoyer. Sélectionnez votre projet et Eclipse a semblé le réparer lui-même. Pour moi, cela a résolu le problème.

J'espère que cela t'aides.







Essaye ça:-

Étape 1

Ajouter toutes les bibliothèques pour construire pat dans Eclipse (signifie faire toutes les bibliothèques référencées bibliothèques)

Étape 2

Supprimez le fichier R.java et créez à nouveau le projet. Ne vous inquiétez pas, R.java sera automatiquement recréé.

Chill :)







Si vous préférez savoir à quels fichiers la solution de contournement est liée, voici ce que j'ai trouvé. Changez simplement le fichier .classpath en

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>

Remplacez le fichier .classpath dans tous les projets de bibliothèque et dans le projet principal android. Le fichier .classpath se trouve dans le dossier racine du projet eclipse. N'oubliez pas d'ajouter vos propres entrées classpath si vous en avez (comparez donc avec votre version actuelle de .classpath).

Je crois que c'est le même résultat que de passer par les menus Eclipse comme l'utilisateur de componavt expliqué ci-dessus (Eclipse / Configurer le chemin de construction / Commander et exporter).




Je n'ai pas eu à placer la librairie-jar dans les assets ou lib, mais seulement cocher la case pour ce jar dans Propriétés -> Java Build Path -> "Order and Export" (elle était listée avant, mais pas sélectionnée )




J'ai eu cette même erreur avec ADT22. Résolu il vérifiant "Android Private Libraries" dans les propriétés -> Java build path -> Commander et exporter. Si vous utilisez des projets de bibliothèque, la même chose devrait être faite pour eux aussi.




La même chose a fonctionné pour moi: Propriétés -> Java Build Path -> "Order and Export" Intéressant - pourquoi cela n'est pas fait automatiquement? Je suppose que certains paramètres manquent. Aussi cela est arrivé pour moi après la mise à niveau du SDK.




Cliquez avec le bouton droit sur votre dossier de projet, recherchez Propriétés dans le chemin de génération Java et sélectionnez les fichiers jar que vous voyez. ça a marché pour moi.




Parfois, cela se produira en raison de ne pas inclure jar, dont vous avez une dépendance, avec la balise "uses-libary" dans votre AndroidManifest.xml.

Aussi, assurez-vous qu'il doit être à l'intérieur de la balise "application".

Cordialement,

Ravi




Comme j'ai compris, votre projet ne montre aucune erreur, parce que vous avez inclus le pot. Mais le Jar ne sera pas utilisé lorsque votre projet sera "exporté" vers l'appareil. Essaye ça

Projet -> Propriétés

Chemin de construction Java / Ordre et exportation

[✔] Votre pot




La solution here fonctionné pour moi. Il s'agit d'importer la bibliothèque dans le dossier libs, puis de modifier le fichier build.gradle, puis de le nettoyer avec gradlew.




s'il vous plaît assurez-vous que votre fichier jar est dans le répertoire libs de votre projet dans lequel vous utilisez une version ADT plus récente avec votre éclipse.




En ajoutant le jar externe dans votre chemin de construction, il suffit d'ajouter le jar à votre paquet, mais il ne sera pas disponible pendant l'exécution.

Pour que le pot soit disponible à l' exécution , vous devez:

  • Mettez le pot sous votre dossier d' assets
  • Incluez cette copie du fichier jar dans votre chemin de compilation
  • Accédez à l'onglet d'exportation dans la même fenêtre contextuelle
  • Cochez la case contre le pot nouvellement ajouté



J'ai eu ça pour MapActivity. Construit dans Eclipse obtient NoClassDefFound dans le débogueur.

Vous avez oublié d'ajouter une bibliothèque au manifeste, à l'intérieur de l'élément <Application>...</Application>

<uses-library android:name="com.google.android.maps" />



J'ai essayé différentes choses et la raison de l'erreur dans mon cas était un conflit entre maps.jar et Google Api dans Java Build Path-> Libraries. Donc, quand j'ai enlevé le maps.jar ça a bien fonctionné.

Cordialement,

wahib




J'ai eu exactement le même problème ... Pour résoudre ce problème, j'ai juste supprimé mes librairies privées Android dans "build path" et cliqué sur ok ... et quand j'ai ouvert à nouveau le "build path", eclipse les avait à nouveau ajoutées, et puis ça a marché pour moi;) ...




Toutes les réponses existantes ne fonctionnent pas pour moi parce que mon cas est un peu différent. Il m'a fallu quelques heures pour le faire fonctionner. J'utilise Eclipse.

Mon projet Android comprend un autre projet java 1.6 normal, qui nécessite un fichier jar tiers. L'astuce est:

  • inclure le jar dans le projet java normal pour qu'il compile (seulement), ne pas le vérifier dans l'onglet "Order and Export"
  • copiez également ce fichier jar dans le dossier "libs" du projet android afin qu'il soit disponible en exécution

J'espère que cela aidera ceux qui ont des scénarios similaires à la mienne.




Cela arrive très souvent à moi.

La dernière fois que je me suis souvenu a été causé par le passage de l'Eclipse ADT (Google édition spéciale) à Android Studio, et de revenir en arrière. J'ai essentiellement essayé toutes les méthodes que je peux trouver sur qui n'ont pas fonctionné pour moi.

Finalement, j'ai fait fonctionner l'application à nouveau (plus NoCalssDeffoundError) en basculant mon IDE vers l'Eclipse original (Kepler) avec ADT.




Vous pouvez accélérer le processus si vous utilisez gradle depuis la ligne de commande. Il y a beaucoup d'optimisation à faire pour les développeurs IDE. Mais ce n'est qu'une première version.

Pour plus d'informations, lisez cette discussion sur g + avec certains devs.







java android eclipse ant build