Amazon App store Android Java.Lang.VerifyError не может реплицироваться

#android #app-store #amazon #appstore-approval

#Android #app-store #appstore-одобрение #amazon-appstore

Вопрос:

Я отправил приложение в Amazon App Store. Он был отклонен дважды по той же причине, но я не могу найти проблему. Он выходит из строя в самом начале, обычно через 2-3 окна активности. Эта ошибка никогда не возникает на наших тестовых устройствах, и не было ни одной ошибки или сбоя в приложении на Google Market. До сих пор я был полностью не в состоянии воспроизвести ошибку.

При последнем отклонении мы запросили трассировку стека, которую они отправили, но только с ошибками, а не с предупреждениями, что, насколько я понимаю, мне нужно, чтобы точно выяснить, какой метод вызывает Java.Lang.VerifyError из W / dalvikvm. Разумно ли предположить, что когда они декомпилируют приложение и вводят свой код amazon drm / tracking / whatever в приложение и перекомпилируют его, это вызывает конфликтующие ошибки с некоторыми из моего кода? или что Amazon, возможно, компилируется на другой версии Java, чем мы? (наш 1.6)

Для приложений minSdk и targetSdk установлено значение api8, что составляет минимум 2.2, и мы компилируем его с 2.2. У кого-нибудь еще была эта ошибка с Amazon раньше, и, возможно, он сможет дать мне некоторое представление о том, как была решена проблема?

Спасибо

Комментарии:

1. Используете ли вы какие-либо методы Java 1.6? Может быть, String.isEmpty()? Будет практически невозможно помочь вам без дополнительной информации.

2. Не используя какую-либо строку.isEmpty() или что-либо еще, в основном просто @override. Извините за отсутствие информации, я едва могу справиться с той небольшой информацией, которую я получаю от Amazon. Мне кажется, что эта проблема не может быть решена путем просмотра кода, а скорее кем-то, у кого был такой же опыт работы с командой проверки в Amazon Appstore, и их проблема была решена.

3. У меня такая же проблема. Я никогда не смогу воспроизвести их ошибку (2 отдельных приложения)

Ответ №1:

Обнаружена проблема. В манифесте был файл .java, который был объявлен как activity, которым он был изначально, но вместо этого он был изменен на extend Dialog.

Когда Amazon вводит код в ваше приложение, они просматривают манифест, чтобы найти действия Android, и вводят в них код, такой как обратные вызовы и переопределения методов, некоторые из которых специфичны для класса Activity. Когда Amazon посмотрел на мой манифест, они подумали, что класс был Activity, но на самом деле это был диалог, и приложение зависало при попытке переопределить методы, которые не существовали.

После удаления объявлений манифеста для классов, которые не были фактическими действиями, приложение было одобрено. Странно, что Google и eclipse не обнаружили объявленных действий, которые не были действиями при компиляции приложения.

Надеюсь, это поможет другим, кто, похоже, не может выяснить причину, по которой их приложения не получают одобрения Amazon.