2012-02-16 2 views
2

У меня есть проект библиотеки Android (написанный мной, и у меня есть источники), которые я использую в своем проекте Android, до сих пор так хорошо и без проблем. Но в этом проекте библиотеки я ссылаюсь на внешний файл .jar (SDK для Bixolon Mobile Printer), и он строит отлично, и я могу ссылаться на метод SDK в моем коде. Однако во время выполнения я получаю это:Java-библиотека в библиотеке Android, на которую ссылается Android-проект throws NoClassDefFound

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) 

Что заставляет меня задаться вопросом, если .jar я ссылки в моем проекте Android библиотеки развертывается правильно ... У меня есть образец проекта от Bixolon, который непосредственно включает их .jar файл (тот же, что я упоминаю в моем проекте библиотеки Android), и он отлично работает. Я уже убедился, что это то же самое в моем собственном проекте Android и моем проекте библиотеки Android (как это определено в примере проекта, представленном Bixolon). Поэтому я немного не понимаю, что может быть проблемой. К сожалению, у меня нет исходных файлов для упомянутого Bixolon SDK .jar - только .jar.

ответ

2

Заканчивать официальный путеводитель here Dev:

Проект библиотеки может включать в себя библиотеку JAR
Вы можете разработать проект библиотеки, который сам включает в себя библиотеку JAR, однако вам необходимо вручную отредактировать зависимого проекта проекта и добавить путь к файлу JAR.

Помимо проекта библиотеки, вам необходимо вручную добавить банку к основному пути создания проекта, надейтесь на эту помощь.

Обновление от SDK r17:

Это автоматически обрабатывается ADT теперь проверить новую функцию для ADT 17.0.0 релиз here:

Добавлена ​​функция для автоматической настройки зависимостей JAR. Любые файлы .jar в папке/libs добавляются в конфигурацию сборки (подобно тому, как работает система сборки Ant). Кроме того, файлы .jar, необходимые для проектов библиотек, также автоматически добавляются к проектам, которые зависят от этих проектов библиотеки. (more info)

+0

За несколько секунд до того, как вы отправили ответ, я тоже понял, что тоже :) (хотя и пробным и ошибочным) спасибо LOT! – AgentKnopf

Смежные вопросы