Bonjour, Je développe une application sous Eclipse devant utiliser la lib JIBX. J'ai commencé par suivre ce tutoriel : "http://www.ibm.com/developerworks/java/tutorials/j-jibx2/". Tout fonctionne parfaitement dans un projet JAVA classique. Je peux générer un xsd à partir de classe, générer des classes à partir d'un xsd puis exécuter le programme qui retourne les bons résultats.
J'ai voulu refaire ce tuto mais sur android. J'ai réimporté les mêmes libs que le projet classique pour que ça compile (JIBX est censé être compatible avec Android). Je peux générer les classes et les objets, mais lorsque j'essaye de compiler ce projet, une erreur apparait sur le téléphone virtuel et le LogCat affiche le message suivant :
09-10 12:33:54.957: I/Process(1905): Sending signal. PID: 1905 SIG: 9
09-10 12:34:05.047: I/dalvikvm(1944): Could not find method org.jibx.runtime.BindingDirectory.getFactory, referenced from method com.example.jibxtestandroid.MainActivity.calcul
09-10 12:34:05.079: W/dalvikvm(1944): VFY: unable to resolve static method 25: Lorg/jibx/runtime/BindingDirectory;.getFactory (Ljava/lang/Class;)Lorg/jibx/runtime/IBindingFactory;
09-10 12:34:05.079: D/dalvikvm(1944): VFY: replacing opcode 0x71 at 0x0004
09-10 12:34:05.079: W/dalvikvm(1944): VFY: unable to resolve exception class 34 (Lorg/jibx/runtime/JiBXException;)
09-10 12:34:05.079: W/dalvikvm(1944): VFY: unable to find exception handler at addr 0x8
09-10 12:34:05.087: W/dalvikvm(1944): VFY: rejected Lcom/example/jibxtestandroid/MainActivity;.calcul ()Ljava/lang/String;
09-10 12:34:05.087: W/dalvikvm(1944): VFY: rejecting opcode 0x0d at 0x0008
09-10 12:34:05.087: W/dalvikvm(1944): VFY: rejected Lcom/example/jibxtestandroid/MainActivity;.calcul ()Ljava/lang/String;
09-10 12:34:05.087: W/dalvikvm(1944): Verifier rejected class Lcom/example/jibxtestandroid/MainActivity;
09-10 12:34:05.087: W/dalvikvm(1944): Class init failed in newInstance call (Lcom/example/jibxtestandroid/MainActivity;)
09-10 12:34:05.087: D/AndroidRuntime(1944): Shutting down VM
09-10 12:34:05.087: W/dalvikvm(1944): threadid=1: thread exiting with uncaught exception (group=0x414c4700)
09-10 12:34:05.147: E/AndroidRuntime(1944): FATAL EXCEPTION: main
09-10 12:34:05.147: E/AndroidRuntime(1944): java.lang.VerifyError: com/example/jibxtestandroid/MainActivity
09-10 12:34:05.147: E/AndroidRuntime(1944): at java.lang.Class.newInstanceImpl(Native Method)
09-10 12:34:05.147: E/AndroidRuntime(1944): at java.lang.Class.newInstance(Class.java:1130)
09-10 12:34:05.147: E/AndroidRuntime(1944): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
09-10 12:34:05.147: E/AndroidRuntime(1944): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
09-10 12:34:05.147: E/AndroidRuntime(1944): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
09-10 12:34:05.147: E/AndroidRuntime(1944): at android.app.ActivityThread.access$600(ActivityThread.java:141)
09-10 12:34:05.147: E/AndroidRuntime(1944): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
09-10 12:34:05.147: E/AndroidRuntime(1944): at android.os.Handler.dispatchMessage(Handler.java:99)
09-10 12:34:05.147: E/AndroidRuntime(1944): at android.os.Looper.loop(Looper.java:137)
09-10 12:34:05.147: E/AndroidRuntime(1944): at android.app.ActivityThread.main(ActivityThread.java:5103)
09-10 12:34:05.147: E/AndroidRuntime(1944): at java.lang.reflect.Method.invokeNative(Native Method)
09-10 12:34:05.147: E/AndroidRuntime(1944): at java.lang.reflect.Method.invoke(Method.java:525)
09-10 12:34:05.147: E/AndroidRuntime(1944): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-10 12:34:05.147: E/AndroidRuntime(1944): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-10 12:34:05.147: E/AndroidRuntime(1944): at dalvik.system.NativeStart.main(Native Method)
09-10 12:39:05.443: I/Process(1944): Sending signal. PID: 1944 SIG: 9
J'ai commencé par référencer jibx-run.jar et à le cocher de le buildpath, à l'onget order and export. Je l'ai même mis au top. ça n'a rien changé. Le message d'erreurs restait le même. J'ai alors pensé à référencer et cocher toutes les libs impotées de JIBX. Là, éclipse plante et affiche un message d'erreur : "Unable to execute dex: Java heap space ". Qui veut surement dire que les libs chargées sont trop lourdes (l'ensemble fait 7Mo).
Avez-vous une idée d'où viens l'erreur ? Les librairies sont correctements incluses et il n'y pas d'erreur eclipse. Merci
En fait j'ai trouvé la solution. il fallait que j'ajoute au build path uniquement jibx-schema.jar, qui a ajouté automatiquement jibx-run.jar et quelques autres librairies (pas toutes justement). Ensuite il fallait cocher cette librairie dans l'onglet order and export
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.