#android #verifyerror
#Android #ошибка проверки
Вопрос:
это ошибка, которую я получаю в консоли разработчика Android от сотен моих пользователей.
Я потратил целый день, пытаясь исправить проблему в коде, и потребовалось 9 выпусков, и я все еще получаю эти сообщения об ошибках. У моего приложения около 5 тысяч загрузок в день, и примерно на 10% устройств оно выходит из строя. Из-за этого рейтинг моего приложения снизился с 4.7 до 3.0 всего за один день.
Я буквально не могу этого понять.
Я собираюсь позволить кому-то удаленно подключиться к моему компьютеру и заплатить за просмотр.
В любом случае, короче говоря. Прошлой ночью я внес обновление в код и удалил рекламу Google из своего приложения. Добавлено немного кода и выпущено приложение для Android Market. Этим утром у меня было 200 сообщений об ошибках. Приложение выходит из строя на многих устройствах.
Я перешел к отчетам об ошибках, и это то, что получает большинство людей:
java.lang.VerifyError: a.xml.a$Searching
at a.xml.a.startTalkingActivity(a.java:849)
at a.xml.a.onActivityResult(a.java:1053)
at android.app.Activity.dispatchActivityResult(Activity.java:3890)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3511)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3557)
at android.app.ActivityThread.access$2800(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
Я вернул рекламу, но ошибка продолжает приходить. Я удалил добавленный мной код, ошибка все еще присутствует, и я получаю все больше сердитых отзывов с жалобами на сбой при нажатии кнопки.
Я схожу с ума здесь, я был бы признателен за любую помощь с этим. Я не могу понять, что означает эта ошибка.
Комментарии:
1. В принципе, класс
a.xml.a$Searching
не может быть «проверен». Что-то в классе не так, хотя вы не имеете большого представления о том, что это может быть. (Почти так же неприятно, как «ошибка NoClassDefFoundError».) Скорее всего, существует несоответствие между вашим классом и другим классом в файле jar на устройстве, с точки зрения типов при вызове метода и т.д. Это происходит, когда версия jar изменяется несовместимым образом (что, к сожалению, не редкость). Вы можете получить некоторую подсказку, если распределите сбои по марке телефона, типу и версии Android — возможно, сбой произошел из-за марки или версии.2. Используете ли вы ProGuard для запутывания вашего исходного кода? попробуйте создать приложение, не запутывая свой код.
3. Извините, как мне это сделать? И действительно ли я хочу выпускать код моего приложения без искажений?
4. Я не просил вас публиковать это, если вы используете ProGuard / obfuscating, попробуйте build без обфускации и протестируйте его, чтобы увидеть, действительно ли это вызвано обфускацией.
5. Хорошо, извините, возможно, я не объяснил, что я не могу воспроизвести это на своих собственных устройствах Android, сбой происходит из-за небольшой группы моих пользователей. Около 10% из них, и у меня такое ощущение, что это 2.2 Android и ниже, но я не могу быть уверен, потому что Google не дает мне эту статистику.
Ответ №1:
Похоже, у вас есть Searching
внутренний класс a.xml.a
class. Этот Searching
внутренний класс ссылается на что-то, чего не существует на устройствах пользователей, даже если оно существовало в вашей целевой сборке.
Вы можете временно отказаться от своей цели сборки, чтобы она совпадала с вашей minSdkVersion
(если ее там еще нет), и посмотреть, появится ли что-нибудь в этом классе.
Помимо этого, попытайтесь найти общие характеристики устройств, на которых происходит сбой приложения (например, версию ОС).
Комментарии:
1. Это так крайне расстраивает,… Я потратил весь день и до сих пор понятия не имею, что это может быть и как именно подойти к этой проблеме.
2. @jjj: Вы могли бы начать, следуя инструкциям во втором абзаце моего ответа. Или попробуйте запустить свое приложение в старых эмуляторах, чтобы посмотреть, сможете ли вы воспроизвести проблему (должна возникнуть при первой попытке обращения к
a.xml.a
). Или вставьте исходный код вSearching
в свой ответ, чтобы другие могли его просмотреть.3. Исходный код для поиска содержит около 2000 строк. Но может ли это иметь какое-то отношение к моей собственной машине? Я не вижу ничего, что я сделал в коде. Обновление Java? Какое-то обновление или изменение Eclipse?
4. @jjj: «Но может ли это иметь какое-то отношение к моей собственной машине?» — нет. «Я не вижу ничего из того, что я сделал в коде». — затем используйте свою систему контроля версий, чтобы выполнить откат к заведомо исправной версии кода.
5. Я обнаружил, что эта проблема каким-то образом связана с предыдущей версией Android версии 2.3. Я выпустил свое приложение с этим ограничением, и я больше не получаю ошибок. Это не решение, но привет…
Ответ №2:
Я просто хотел предложить свое решение этой проблемы, поскольку я больше нигде этого не нашел.
Я смог решить проблему, дважды проверив путь сборки проекта. Я всегда получаю сообщение об ошибке, когда забываю экспортировать внешние библиотеки. Надеюсь, это кому-то поможет 🙂
Ответ №3:
Я исправил проблему, пришлось сократить класс на более мелкие фрагменты, он был слишком длинным.
Комментарии:
1. Затем вы должны пометить это сообщение как правильный ответ (зеленая галочка). Может быть, вы могли бы также предоставить некоторые подробности о вашем решении.
Ответ №4:
У меня возникла та же проблема после обновления Android ADT и Java. Попробуйте выполнить следующие действия:
- Удалите ссылки на ваши внешние библиотеки в вашем проекте Android.
- Переместите все ваши внешние библиотеки (включая библиотеки рекламы Google) в папку libs внутри вашего проекта Android.
- Повторно свяжите свои библиотеки, которые теперь существуют в каталоге Project libs.