2012-02-16 5 views
2

Android 프로젝트에서 사용하는 Android 라이브러리 프로젝트 (저에게 작성되었으며 소스가 있습니다)가 있습니다. 하지만 그 라이브러리 프로젝트에서 나는 외국의 .jar 파일 (Bixolon 모바일 프린터 용 SDK)을 참조하고 있으며 잘 빌드되고 SDK 코드를 내 코드에서 참조 할 수 있습니다.Android 프로젝트에서 참조하는 Android 라이브러리의 Java 라이브러리에서 NoClassDefFound를 throw합니다.

내 안드로이드 라이브러리 프로젝트에서 참조하고있는 .JAR가 올바르게 배치됩니다 경우, 내가 궁금합니다
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를 포함 빅솔론의 샘플 프로젝트가 있습니다 그러나 런타임에 나는이를 얻을 수 파일 (안드로이드 라이브러리 프로젝트에서 참조하는 것과 동일)가 제대로 작동합니다. 나는 이미 자신의 안드로이드 프로젝트와 안드로이드 라이브러리 프로젝트 (Bixolon이 제공 한 샘플 프로젝트에 정의 된대로)에서 동일하다는 것을 이미 확인했습니다. 그래서 나는 문제가 무엇인지에 관해서는 지금 조금은 상실하고있다. 불행히도 참조 된 Bixolon SDK .jar (.jar)의 소스 파일이 없습니다. 공식 dev에 가이드 here

답변

2

체크 아웃 : 라이브러리 프로젝트는 JAR 라이브러리
을 포함 할 수

당신은 그러나 수동으로 편집 할 필요 자체가 JAR 라이브러리를 포함하는 라이브러리 프로젝트를 개발할 수 있습니다 종속 응용 프로그램 프로젝트의 빌드 경로를 추적하고 JAR 파일에 경로를 추가하십시오.

라이브러리 프로젝트 외에도 수동으로 기본 프로젝트 빌드 경로에 jar를 추가해야합니다. 도움이 되었으면합니다. SDK의 R17에서

업데이트 : 이것은 자동으로 현재 ADT에 의해 처리됩니다

는 ADT 17.0.0 릴리스 here 새로운 기능을 체크 아웃 : 자동으로 설정 JAR 종속성

추가 기능을합니다./libs 폴더의 모든 .jar 파일은 빌드 구성에 추가됩니다 (Ant 빌드 시스템의 작동 방식과 유사). 또한 라이브러리 프로젝트에 필요한 .jar 파일도 해당 라이브러리 프로젝트에 의존하는 프로젝트에 자동으로 추가됩니다. (more info)

+0

u가 답변을 게시하기 전 몇 초 만에 나도 알아 냈습니다. (시행 착오 일뿐입니다) 감사합니다. – AgentKnopf