Il s'agit d'un problème récent avec le nouveau SDK pour Android.
Le SDK Android utilise maintenant la convention ANT pour importer des jars externes dans le paquet apk, les jars externes doivent se trouver dans le dossier "lib" et le SDK exportera toujours les jars de ce dossier.
Mon problème est que lorsque j'ajoute mes jars et que je lance mon projet, j'obtiens ce message :
difficulté à traiter "javax/transaction/HeuristicCommitException.class" :
Utilisation inappropriée ou erronée d'une classe de base (java.* ou javax.*) lorsque l'on ne construit pas de bibliothèque de base. ne pas construire une bibliothèque de base.
Cela est souvent dû à des dans le projet de votre application, lorsque vous utilisez un IDE (comme Eclipse). Si vous êtes sûr de ne pas définir intentionnellement une classe de base, alors ceci est l'explication la plus probable de ce qui se passe.
Cependant, il se peut que vous soyez dont la source peut provenir, par exemple, d'un projet de machine virtuelle autre qu'Android. projet de machine virtuelle non Android. Cela ne fonctionnera certainement pas. fonctionnera pas. Au minimum, cela compromet la compatibilité de votre application avec les futures versions de la plateforme. avec les futures versions de la plateforme. Elle est aussi souvent d'une légalité légalité douteuse.
Si vous avez vraiment l'intention de construire une bibliothèque de base -- qui n'est qu'un de la création d'une distribution complète de machine virtuelle, par opposition à la compilation d'une application, utilisez l'option "--core-library" pour supprimer ce message d'erreur.
Si vous utilisez "--core-library" mais que vous construisez en fait une application, soyez prudent. une application, sachez que votre application échouera toujours à se de se construire ou de s'exécuter, à un moment ou à un autre. Préparez-vous à avoir des clients en colère qui constateront, par exemple, que votre application cesse de fonctionner dès qu'ils qu'ils mettent à jour leur système d'exploitation. Vous serez responsable de ce problème.
Si vous utilisez légitimement un code qui se trouve dans un core alors la solution la plus simple et la plus sûre est de repackager ce code. ce code. C'est-à-dire déplacer les classes en question dans votre propre espace de noms du paquetage dans votre propre espace de noms. Cela signifie qu'elles ne seront jamais en conflit avec les classes du système de base. du système. JarJar est un outil qui peut vous aider dans cette entreprise. Si vous n'y parvenez pas, c'est le signe que que le chemin que vous empruntez vous mènera finalement à la douleur, à la souffrance, au chagrin, et à la lamentation.
J'ai lu ce message ici et sur d'autres forums, certaines personnes disent que c'est Android.jar qui est le problème, donc le supprimer va le résoudre.
Mais je n'ai pas trouvé Android.jar, sauf la bibliothèque Android qui ne peut pas être supprimée.
Ce problème d'importation de librairies sur Android me met hors de moi car mon application fonctionnait très bien.