Androidプロジェクトが参照するAndroidライブラリのJavaライブラリはNoclassdeffoundを投げます

StackOverflow https://stackoverflow.com/questions/9308331

質問

Androidライブラリプロジェクト(私と私にはソースがあります)があります。これは、Androidプロジェクトで使用しています。これまでのところ、問題ありません。しかし、そのライブラリプロジェクトでは、外国の.jarファイル(Bixolonモバイルプリンター用のSDK)を参照しています。これは問題なく構築されており、コードでSDKの方法を参照できます。しかし、実行時にこれを取得します:

   02-16 09:44:43.620: W/dalvikvm(25402): VFY: unable to resolve virtual method 2433: Lcom/bixolon/android/library/BxlService;.GetStatus ()I
    02-16 09:44:43.625: W/dalvikvm(25402): VFY: unable to resolve virtual method 2433: Lcom/bixolon/android/library/BxlService;.GetStatus ()I
    02-16 09:44:43.625: W/dalvikvm(25402): VFY: unable to resolve virtual method 2436: Lcom/bixolon/android/library/BxlService;.MarkFeed (I)I
    02-16 09:44:43.625: W/dalvikvm(25402): VFY: unable to resolve virtual method 2428: Lcom/bixolon/android/library/BxlService;.Directio ([BI[B[I)I
    02-16 09:44:43.630: W/dalvikvm(25402): VFY: unable to resolve virtual method 2437: Lcom/bixolon/android/library/BxlService;.PrintImage (Ljava/lang/String;III)I
    02-16 09:44:43.630: W/dalvikvm(25402): VFY: unable to resolve virtual method 2433: Lcom/bixolon/android/library/BxlService;.GetStatus ()I
    02-16 09:44:43.630: W/dalvikvm(25402): VFY: unable to resolve virtual method 2433: Lcom/bixolon/android/library/BxlService;.GetStatus ()I
    02-16 09:44:43.630: W/dalvikvm(25402): VFY: unable to resolve virtual method 2433: Lcom/bixolon/android/library/BxlService;.GetStatus ()I
    02-16 09:44:43.790: W/dalvikvm(25402): threadid=1: thread exiting with uncaught exception (group=0x4001e578)
    02-16 09:44:43.795: E/AndroidRuntime(25402): FATAL EXCEPTION: main
    02-16 09:44:43.795: E/AndroidRuntime(25402): java.lang.NoClassDefFoundError: com.bixolon.android.library.BxlService
    02-16 09:44:43.795: E/AndroidRuntime(25402):    at de.softcon.mobileapp.framework.core.bluetooth.printer.bixolon.BixolonPrinter.connectToPrinter(BixolonPrinter.java:71)
    02-16 09:44:43.795: E/AndroidRuntime(25402):    at de.softcon.mobileapp.framework.core.bluetooth.printer.PrintManager.findPrinter(PrintManager.java:101)
    02-16 09:44:43.795: E/AndroidRuntime(25402):    at de.softcon.mobileapp.framework.core.bluetooth.printer.PrintManager.getPrinter(PrintManager.java:77)

02-16 09:44:43.795: E/AndroidRuntime(25402):    at de.softcon.mobileapp.framework.core.bluetooth.printer.PrintManager.printTestReceipt(PrintManager.java:53)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at de.softcon.mobileoffences.ui.Printer$1.execute(Printer.java:40)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at de.softcon.mobileapp.framework.ui.Dialog.executeActions(Dialog.java:271)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at de.softcon.mobileapp.framework.ui.widgets.DynamicWidget.executeActions(DynamicWidget.java:152)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at de.softcon.mobileapp.framework.ui.widgets.DynamicWidget.executeActions(DynamicWidget.java:138)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at de.softcon.mobileapp.framework.ui.widgets.Button$1.onClick(Button.java:67)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at android.view.View.performClick(View.java:2538)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at android.view.View$PerformClick.run(View.java:9152)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at android.os.Handler.handleCallback(Handler.java:587)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at android.os.Handler.dispatchMessage(Handler.java:92)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at android.os.Looper.loop(Looper.java:130)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at android.app.ActivityThread.main(ActivityThread.java:3691)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at java.lang.reflect.Method.invokeNative(Native Method)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at java.lang.reflect.Method.invoke(Method.java:507)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
02-16 09:44:43.795: E/AndroidRuntime(25402):    at dalvik.system.NativeStart.main(Native Method)

Android Libraryプロジェクトで私が参照している.jarが正しく展開されているのではないかと思います... .jarファイルを直接含むBixolonのサンプルプロジェクトがあります(Android Libraryプロジェクトで言及しているのと同じ)と正常に動作します。私はすでに、自分のAndroidプロジェクトとAndroidライブラリプロジェクトで同じであることを確認しました(Bixolonが提供するサンプルプロジェクトで定義されています)。ですから、私は今、問題が何であるかについて少し途方に暮れています。残念ながら、参照されたBixolon Sdk .jar -Jarのソースファイルはありません。

役に立ちましたか?

解決

公式開発ガイドをご覧ください ここ:

ライブラリプロジェクトには、JARライブラリを含めることができます
JARライブラリを含むライブラリプロジェクトを開発できますが、従属アプリケーションプロジェクトのビルドパスを手動で編集し、JARファイルにパスを追加する必要があります。

ライブラリプロジェクトに加えて、メインプロジェクトビルドパスにもジャーを手動で追加する必要があります。これを願っています。

SDK R17からの更新:

これは今すぐADTによって自動的に処理されます。ADT17.0.0リリースの新機能をご覧ください ここ:

JAR依存関係を自動的にセットアップする機能を追加しました。 /libsフォルダー内の.jarファイルは、ビルド構成に追加されます(ANTビルドシステムの仕組みと同様)。また、図書館プロジェクトで必要な.jarファイルも、これらの図書館プロジェクトに依存するプロジェクトに自動的に追加されます。 (より詳しい情報)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top