Вопрос по android, verify – Со мной произошла та же ошибка, поскольку я пытался перехватить исключение SQLDataException на устройстве API v.8, поскольку соответствующий класс не включен в API v.8 (ошибка не возникала на устройствах v.14, где этот класс входит в комплект). На самом деле, SQLDataException.class присутствует не только в android.jar API v.8, но и включен в API v.14. Поэтому я заменил исключение SQLDataException на исключение SQLException (чье SQLDataException является подклассом), и теперь мое приложение работает нормально на обоих устройствах API.

5

дал приложение для Android, которое используется в качестве библиотеки в другом приложении для Android. Я использовал сторонние фляги в приложении для Android, которое работает как библиотека. Когда я связываю эту библиотеку в своем приложении для Android и запускаю ее, я получаю ошибку проверки при попытке доступа к классу, присутствующему в библиотеке. Могу ли я узнать, что проблема блокирует здесь для меня? Любая помощь с благодарностью ..

Я приложил журнал здесь, и Parser1 - это класс внутри библиотеки. Я получаю сообщение об ошибке в строке, когда я пытаюсь создать объект для класса Parser1.

06-06 10:05:43.742: WARN/dalvikvm(224): VFY: unable to resolve static method 3084: Lorg/codehaus/jackson/JsonToken;.values ()[Lorg/codehaus/jackson/JsonToken;
06-06 10:05:43.742: DEBUG/dalvikvm(224): VFY: replacing opcode 0x71 at 0x0005
06-06 10:05:43.742: DEBUG/dalvikvm(224): Making a copy of Lcom/support/utils/Parser1;.$SWITCH_TABLE$org$codehaus$jackson$JsonToken code (522 bytes)
06-06 10:05:43.752: WARN/dalvikvm(224): VFY: unable to find class referenced in signature (Lorg/codehaus/jackson/JsonParser;)
06-06 10:05:43.752: INFO/dalvikvm(224): Could not find method org.codehaus.jackson.JsonParser.getCurrentToken, referenced from method com.support.utils.Parser1.addSectionContentData
06-06 10:05:43.761: WARN/dalvikvm(224): VFY: unable to resolve virtual method 3077: Lorg/codehaus/jackson/JsonParser;.getCurrentToken ()Lorg/codehaus/jackson/JsonToken;
06-06 10:05:43.761: DEBUG/dalvikvm(224): VFY: replacing opcode 0x74 at 0x0002
06-06 10:05:43.761: DEBUG/dalvikvm(224): Making a copy of Lcom/support/utils/Parser1;.addSectionContentData code (2421 bytes)
06-06 10:05:43.761: WARN/dalvikvm(224): VFY: unable to resolve exception class 685 (Lorg/codehaus/jackson/JsonParseException;)
06-06 10:05:43.771: WARN/dalvikvm(224): VFY: unable to resolve exception class 685 (Lorg/codehaus/jackson/JsonParseException;)
06-06 10:05:43.771: WARN/dalvikvm(224): VFY: unable to resolve exception class 685 (Lorg/codehaus/jackson/JsonParseException;)
06-06 10:05:43.771: WARN/dalvikvm(224): VFY: unable to find exception handler at addr 0x19b
06-06 10:05:43.771: WARN/dalvikvm(224): VFY:  rejected Lcom/support/utils/Parser1;.addSectionContentData (Lorg/codehaus/jackson/JsonParser;Ljava/util/List;Lcom/support/ModelClasses/SectionContent;Lcom/support/ModelClasses/FeatureInfo;ZZLjava/lang/String;)Ljava/util/List;
06-06 10:05:43.781: WARN/dalvikvm(224): VFY:  rejecting opcode 0x0d at 0x019b
06-06 10:05:43.781: WARN/dalvikvm(224): VFY:  rejected Lcom/support/utils/Parser1;.addSectionContentData (Lorg/codehaus/jackson/JsonParser;Ljava/util/List;Lcom/support/ModelClasses/SectionContent;Lcom/support/ModelClasses/FeatureInfo;ZZLjava/lang/String;)Ljava/util/List;
06-06 10:05:43.781: WARN/dalvikvm(224): Verifier rejected class Lcom/support/utils/Parser1;
06-06 10:05:43.793: WARN/dalvikvm(224): threadid=15: thread exiting with uncaught exception (group=0x4001b188)
06-06 10:05:43.793: ERROR/AndroidRuntime(224): Uncaught handler: thread AsyncTask #1 exiting due to uncaught exception
06-06 10:05:43.812: ERROR/AndroidRuntime(224): java.lang.RuntimeException: An error occured while executing doInBackground()
06-06 10:05:43.812: ERROR/AndroidRuntime(224):     at android.os.AsyncTask$3.done(AsyncTask.java:200)
06-06 10:05:43.812: ERROR/AndroidRuntime(224):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
06-06 10:05:43.812: ERROR/AndroidRuntime(224):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
06-06 10:05:43.812: ERROR/AndroidRuntime(224):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
06-06 10:05:43.812: ERROR/AndroidRuntime(224):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-06 10:05:43.812: ERROR/AndroidRuntime(224):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
06-06 10:05:43.812: ERROR/AndroidRuntime(224):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
06-06 10:05:43.812: ERROR/AndroidRuntime(224):     at java.lang.Thread.run(Thread.java:1096)
06-06 10:05:43.812: ERROR/AndroidRuntime(224): Caused by: java.lang.VerifyError: com.support.utils.Parser1
06-06 10:05:43.812: ERROR/AndroidRuntime(224):     at com.Sample.checkforversioning(Sample.java:652)
06-06 10:05:43.812: ERROR/AndroidRuntime(224):     at com.Sample$checkVersionThread.doInBackground(Sample.java:682)
06-06 10:05:43.812: ERROR/AndroidRuntime(224):     at com.Sample$checkVersionThread.doInBackground(Sample.java:1)
06-06 10:05:43.812: ERROR/AndroidRuntime(224):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
06-06 10:05:43.812: ERROR/AndroidRuntime(224):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-06 10:05:43.812: ERROR/AndroidRuntime(224):     ... 4 more
06-06 10:05:43.832: INFO/Process(52): Sending signal. PID: 224 SIG: 3

Спасибо, Senthil.M

Вы можете быть более явным об ошибке? И вы сначала скопировали свой jar-файл в проект, а затем добавили его в путь сборки, или вы ссылались на него только внутри пути сборки извне проекта? sfat
Привет, я отредактировал свой раздел вопросов с прикрепленными журналами .. Спасибо за ответ .. Senthil
Я создал каталог с именем lib внутри моего библиотечного проекта, а затем передал его в библиотеку. И эта библиотека связана с оригинальным приложением для Android. Senthil
тогда ладно. Не могли бы вы скопировать полную трассировку стека ошибок из LogCat, чтобы увидеть, откуда возникла ошибка? sfat

Ваш Ответ

6   ответов
0

а затем добавьте их снова, после чего очистите проект и исправьте его для меня.

0

то вы должны добавить все ваши внешние jar-файлы в следующий каталог "libs", а также добавить следующую строку в новый файл: ant.properties: jar.libs.dir = libs

0

поскольку я пытался перехватить исключение SQLDataException на устройстве API v.8, поскольку соответствующий класс не включен в API v.8 (ошибка не возникала на устройствах v.14, где этот класс входит в комплект). На самом деле, SQLDataException.class присутствует не только в android.jar API v.8, но и включен в API v.14. Поэтому я заменил исключение SQLDataException на исключение SQLException (чье SQLDataException является подклассом), и теперь мое приложение работает нормально на обоих устройствах API.

0

VerifyError после создания версии выпуска вашего приложения с использованием ProGuard это может быть связано с некоторой проблемой оптимизации.Обратитесь к документациичто по сути предлагает отключить оптимизацию с помощью-dontoptimize.

2

что во фляге есть доступ к чему-то в Java, чего нет в Android SDK. Посмотрите в LogCat для исключения, и он может сказать вам, чего не хватает. Если у вас есть источники для стороннего jar, попробуйте включить их прямо в ваш проект; это поможет определить проблему.

Вам также необходимо запустить JAR-файл с помощью инструмента "dx", который поставляется вместе с SDK.

У меня нет источника jar стороннего производителя. Не могли бы вы объяснить, как запустить мой jar через dx tool? Я не имею много знаний об этом .. Я попробовал подход, указанный в ссылкеandroidorigin.blogspot.com/2011/02/..., Даже тогда получая ту же самую проблему. Спасибо за ответ.. Senthil
Привет, я следовал от 1 до 3 шагов, указанных в ссылке для разработчиков. Там есть альтернативный вариант, такой как «Добавить библиотеку». Могу ли я знать, что вы упоминаете об этом. Если я выберу эту опцию Добавить библиотеку, я не смогу добавить банки сторонних производителей .. Senthil
Не смог найти классcom.support.utils.Parser1, Это то, что должно быть в файле jar? Если вы используете Eclipse, убедитесь, что вы следовалиинструкции по включению банок сторонних производителей, Кроме того, если вы используете Eclipse, нет необходимости запускать инструмент dx; это делается автоматически. Ted Hopp
@Ted Hopp: Если я нажимаю кнопку Добавить библиотеку, я получаю список опций, таких как Andriod Classpath Container, Определение драйвера подключения и т. Д. Но если я нажимаю кнопку Добавить jar и ссылаюсь на банки, находящиеся в проекте библиотеки, эта ошибка проверки решается для меня .. Это правильное решение или какой-либо другой лучший подход есть ?? Потому что я настроил это вручную и отослал фляги, которые находятся в проекте библиотеки, в мой оригинальный проект. Я получил его подход через эту ссылкуstackoverflow.com/questions/5790370/... Senthil
@Senthil: «Я не могу добавлять банки от третьих лиц». - Почему нет? Есть ли сообщение об ошибке? Ted Hopp
11

Eclipseиди кProject properties -> Java Build Path, ыберитеOrder and Export Перейдите на вкладку и проверьте свои сторонние банки.

Как это относится к Android Studio? Я считаю, что у меня та же ошибка. tccpg288

Похожие вопросы