0

lib JIBXを使用するEclipseでアプリケーションをプログラミングしています。私はこのチュートリアルに従うことにしました: " http://www.ibm.com/developerworks/java/tutorials/j-jibx2/ ". これは、従来の Java プロジェクトで完全に機能します。クラスから xsd を生成し、xsd からクラスを生成し、正しい結果を返すプログラムを実行できます。

私はアンドロイドでこのチュートをやりたかった。クラシック プロジェクトと同じライブラリをインポートしました (JIBX は Android で動作するはずです)。クラスとオブジェクトを生成できますが、このプロジェクトをコンパイルしようとすると、仮想電話にエラーが表示され、LogCat に次のメッセージが表示されます。

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

build-path jibx-run.jar に追加し、それをクロスして、順番にエクスポートし始めました。上にも載せました。何も変わっていません。メッセージ エラーは同じままでした。だから私は同じことをしましたが、プロジェクトのJIBXからインポートされたすべてのライブラリを使用しました。次に、eclipse がクラッシュし、これをボックスに表示します: 「dex を実行できません: Java ヒープ領域」。これは、lib が大きすぎることを示しています (7 Mo) アイデアはありますか? ライブラリは正しく含まれており、Eclipse でエラーは発生しません。ありがとう

4

1 に答える 1

1

Android で JiBXを使用する方法の適切な説明については、JiBX を使用したAndroid プログラミングに関する私のブログを参照してください。

幸運を!

ドン・コーリー

JiBX 寄稿者

于 2013-09-11T04:14:23.193 に答える