Je crée une application qui utilise le temps. J'ai décidé d'utiliser le temps Joda. J'essaie d'ajouter du temps joda à mon application. Je n'ai aucune expérience avec l'ajout de fichiers .jar
Aux bibliothèques. J'ai suivi ces étapes (voir en bas), ou du moins je le pensais. Mon projet ne montre aucune erreur, mais lorsque je lance un test simple: DateTime test = new DateTime();
j'obtiens une fermeture forcée et l'erreur suivante:
Could not find class 'org.joda.time.DateTime', referenced from method xxxx
Java.lang.NoClassDefFoundError: org.joda.time.DateTime
Voici les étapes que j'ai suivies:
New -> Folder -> libs
. Remarque: je ne l'ai pas fait car j'avais déjà un dossier nommé libs
joda-time-2.1.jar
Dans le dossier libs
nouvellement créé.Properties -> Java Build Path -> Libraries -> Add Jars -> joda-time-2.1.jar
.Vous pouvez maintenant tester avec ce code:
DateTime test = new DateTime();
Après l'importation:
import org.joda.time.DateTime;
Puisqu'il s'agit d'un projet Android, il ne suffit pas de référencer le fichier Joda. Vous devrez regrouper ce fichier jar avec votre apk, ce qui peut être fait comme ceci: -
Propriétés -> Java Build Path -> Order & Export
Vérifiez le joda-time-*-*.jar
et cliquez sur Ok. Vous avez terminé.
Explication: Référencer le pot seul ne résoudra que les problèmes de compilation dans Eclipse (ou tout autre IDE), mais lorsque l'apk est créé le fichier jar "joda-time" ne sera pas exporté/groupé avec votre "apk". C'est la raison pour laquelle il lance le NoClassDefFoundError.
Mais lorsque vous vérifiez le pot joda-time dans Order & Export , il s'assurera que le pot est également inclus dans/avec votre "apk" "chaque fois qu'il est créé.