2013-11-29 2 views
5

У меня есть проект Android с функцией сканирования QR. Я использую библиотеку ZBar для этого: http://sourceforge.net/projects/zbar/files/AndroidSDK/Android ZBar Exception только с Jenkins build

Если проект построен на ПК или Mac с exlipse, приложение работает нормально. Если он создан jenkins (тот же источник из git), приложение падает.

Исключение я получаю:

at controller.gui.activity.QRScanActivity.onCreate(Unknown Source) 
at android.app.Activity.performCreate(Activity.java:4465) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
at android.app.ActivityThread.access$600(ActivityThread.java:123) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4424) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NoSuchFieldError: no field with name='peer' signature='J' in class Lnet/sourceforge/zbar/ImageScanner; 
at net.sourceforge.zbar.ImageScanner.init(Native Method) 
at net.sourceforge.zbar.ImageScanner.<clinit>(Unknown Source) 
... 16 more 

Я использовал демо-приложение для базы.

Это проблема конфигурации Jenkins?

Библиотека Zbar - это не только файл jar, это библиотека C с jni. Таким образом, у меня есть файл jar и 3 папки (для разных архитектур, я думаю), и у них есть файлы libiconv.so и libzbarjni.so.

ответ

2

Я не знаю, если вы уже поняли это, но это проблема пролога. Кажется, ваши классы JNI не запутываются правильно. Возможно, вам придется изменить конфигурацию proguard, чтобы пропускать файлы ZBar.

21

Добавить -keep class net.sourceforge.zbar.** { *; } в конфигурационный файл proguard

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

  • Нет связанных вопросов^_^