2014-12-30 4 views
0

Я создаю проект библиотеки, в котором я использую сторонний файл jar.Fatal Exception: java.lang.VerifyError: Исходя из импортированного файла jar

Обычно, когда я использую библиотеку в качестве зависимости от TestApp, все работает так, как должно. К нему прилагается скриншот для этого:

Library project dependency which worked

Но, когда я экспортировать баночку из библиотеки проекта TestSDK и добавить его в путь сборки на TestApp, который выглядит следующим образом:

Added jar to build path

Full view of order and export

При развертывании приложения на устройстве я получаю VerifyError. Ниже приведены журналы:

12-30 18:10:55.778: W/dalvikvm(7316): VFY: unable to find class referenced in signature (Lcom/aerserv/sdk/ASAdView;) 
12-30 18:10:55.788: W/dalvikvm(7316): VFY: Ljava/lang/Object; is not instance of Landroid/view/View; 
12-30 18:10:55.788: W/dalvikvm(7316): VFY: bad arg 1 (into Landroid/view/View;) 
12-30 18:10:55.788: W/dalvikvm(7316): VFY: rejecting call to Landroid/view/ViewGroup;.removeView (Landroid/view/View;)V 
12-30 18:10:55.788: W/dalvikvm(7316): VFY: rejecting opcode 0x6e at 0x0011 
12-30 18:10:55.788: W/dalvikvm(7316): VFY: rejected Lcom/anupam/sdk/activities/AdsActivity;.initAerservAd()V 
12-30 18:10:55.788: W/dalvikvm(7316): Verifier rejected class Lcom/anupam/sdk/activities/AdsActivity; 
12-30 18:10:55.788: W/dalvikvm(7316): Class init failed in newInstance call (Lcom/anupam/sdk/activities/AdsActivity;) 
12-30 18:10:55.788: D/AndroidRuntime(7316): Shutting down VM 
12-30 18:10:55.788: W/dalvikvm(7316): threadid=1: thread exiting with uncaught exception (group=0x41596ba8) 
12-30 18:10:55.788: E/AndroidRuntime(7316): FATAL EXCEPTION: main 
12-30 18:10:55.788: E/AndroidRuntime(7316): Process: com.anupam.testsdk, PID: 7316 
12-30 18:10:55.788: E/AndroidRuntime(7316): java.lang.VerifyError: com/anupam/sdk/activities/AdsActivity 

Каким должен быть правильный способ? Я что-то упустил. Любая помощь или руководство будут высоко оценены.

+0

Вы используете Oracle Java или OpenJDK? – atok

+0

http://stackoverflow.com/questions/668788/android-java-lang-verifyerror –

ответ

2

Я думаю, что ваш JAR зависит от SDK Aerserv, но не включает его. И я не вижу, чтобы это было включено в приложение.

Обратите внимание: зависимости сборки вашей библиотеки JAR автоматически не включаются. Зависимости возникают при создании библиотек. У вас есть два варианта: включить зависимости в банке (вам нужно заставить вашу систему сборки сделать это) или дать указание пользователю библиотеки сделать это (подобно тому, как это делает Aerserv). При включении зависимостей вы рискуете столкнуться, если пользователь библиотеки также их рекламирует.

+0

Итак, вручную я буду использовать jar-сервер aererv в TestApp, не может ли он быть включен в сам проект библиотеки? – Anupam

+0

Я обновил свой ответ. – atok

+0

Спасибо, Атокс за реальный быстрый ответ. Пожалуйста, поправьте меня, если я ошибаюсь. Чтобы заставить это работать, мне придется вручную добавить исходный код aerserv в проект библиотеки вместо банки? Или, во-вторых, мне нужно будет добавить барабан aerserv вручную в моем TestApp для работы? Кроме этого ничего не может быть сделано для решения этой проблемы? – Anupam

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

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