Inclure un jar file dans un projet android

javasfutur - 9 avril 2013 à 02:52
 javasfutur - 9 avril 2013 à 15:49
Bonsoir tout le monde,

je suis encore débutante en android,j'ai fait un projet android simple ensuite j'ai crée un autre projet java (et non android) et j'ai fait un jar de ce projet et quand j'ajoute ce projet dans le libs de mon projet android et j'essaye d'appeller une fonction de ce jar dans le Oncreate d'android ça ne marche pas il me retourne l'erreur
suivante :

java.lang.NoClassDefFoundError

ça fait plus qu'une journée que je recherche à resoudre ce problème mais en vain,

à noter j'ai déja suivi l'etape de build path/librairies/add jars/et le jar du dossier lib . j'utilise l'android api 17

7 réponses

Utilisateur anonyme
9 avril 2013 à 10:49
Bonjour

Les JARs doivent être mis dans le dossiers "libs" et non "lib" comme c'est expliqué ici.

De plus, Android n'utilise pas une JVM standard, il ne supporte qu'un sous-ensemble de J2SE. Si vous utilisez des classes de l'API standard Java non supportées par Android et absentes de vos JARs ou si les classes de vos JARs en dépendent, cela ne fonctionnera pas. Faites bien la disctinction en Android Dalvik Virtual Machine et Java Virtual Machine.



















T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
Utilisateur anonyme
9 avril 2013 à 10:49
Pardon pour la faute d'orthographe.

















T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
je vois bien que dalvik machine virtuelle ne prend pas en charge tous les api java mais dans mon cas ça me sera impossible de passer par des projets considérés en tant que librery pour pouvoir utiliser ses fonctions donc je me demande s'il y'a une methode qui permet d'ajouter ses fonction dans l'api android
0
Utilisateur anonyme
9 avril 2013 à 13:08
Je vous recommande plutôt d'utiliser des bibliothèques conçues pour supporter Android ou tout du moins qui dépendent uniquement d'APIs présentes à la fois dans J2SE et dans Android. Je crois comprendre que vous cherchez un moyen d'ajouter les APIs normalement absentes d'Android venant de J2SE dans Android. A ma connaissance, il n'existe aucune solution faisant ça et ce n'est pas du tout ainsi qu'on procède habituellement sur des projets multi-plateformes. On mène des projets multi-plateformes avec des APIs multi-plateformes, ou alors on implémente plusieurs modules dépendant de plateformes particulières. Par exemple, il n'existe aucune implémentation de Swing sous Android et de toute façon, Swing ne prend pas en charge le multitouch.

Il est possible de faire tourner une partie d'OpenJDK avec Avian sous Android en théorie mais c'est très peu documenté. Avian est très dur à paramétrer. Cette solution revient à contourner les API Java d'Android sous Android, pas à les compléter et même avec ça, certaines API de J2SE ne pourraient toujours pas fonctionner.

Pour résumer, vous faites fausse route. Soit vous choisissez des API qui supportent bien toutes les plateformes que vous visez, soit vous vous tapez des parties de code non portables, soit vous abandonnez une des plateformes. Vous pouvez remercier Google d'avoir participé à la fragmentation de Java

















T.U.E.R (First Person Shooter créé par Julien Gouesse)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
j'essayé tout simplement de porter un simple bean existant d'un projet java dans mon projet android donc jusqu'à maintenant je ne vois pas vraiment que j'utilise 2 plateforms differentes et je comprends meme pas comment en important le jdom.jar par exemple fonctionne en l'ajoutant dans mon dossier libs et avec un simple jar d'un autre projet ça ne fonctionne pas
0
Utilisateur anonyme
9 avril 2013 à 14:29
Que contient le JAR d'un autre projet?




















T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
pour le moment il ne contient qu'un javabean avec des getters et setters simple que j'essaye de remplir et d'afficher dans mon projet android .
0
Rejoignez-nous