В моем приложении для Android я всегда получаю VerifyErrors! И я не могу понять почему. Всякий раз, когда я включаю внешний JAR, я всегда получаю VerifyErrors при попытке запустить свое приложение (за исключением одного раза, когда я включил Apache Log4j.)
Обычно я обходлю это, беря исходный код библиотеки и добавляя его в свой проект, но я пытаюсь поместить клиентскую библиотеку GData.
Я могу получить это в исходном коде, но это зависимости (mail.jar, activation.jar, servlet-api.jar) Я не могу, поэтому получаю ошибки проверки. Я хотел бы добраться до корня этой проблемы раз и навсегда. Я посмотрел в Интернете, но все они, кажется, говорят о файлах неполного класса? о которых я не знаю.
Переведено автоматически
Ответ 1
Посмотрите на LogCat и посмотрите, что вызывает verifyerror. Вероятно, это какой-то метод в классе java.lang, который не поддерживается на используемом вами уровне Android SDK (например, String.isEmpty()).
Вывод из "adb logcat" указывает класс, который не удалось найти, а также класс с неверной ссылкой. Местоположение определяется с помощью конкретной инструкции Dalvik. Хитрость в том, чтобы посмотреть в логах выше исключения.
Ответ 3
Android использует другой формат файла класса. Вы запускаете файлы JAR сторонних производителей с помощью инструмента "dx", который поставляется с Android SDK?
Ответ 4
Чтобы это заработало, вам нужно добавить jar библиотеки в одну из исходных папок (даже если вы уже добавили ее как библиотеку eclipse, вам все равно нужно добавить ее как исходный код).
Создайте каталог в своем проекте (например, "libs") и поместите туда библиотеку jar.
Добавьте каталог в путь к классу сборки с помощью (нажмите правую кнопку мыши на папке и выберите "Путь сборки" -> "Использовать в качестве исходной папки").