Android подписан APK показывает неполное - PullRequest
12 голосов
/ 28 марта 2011

Я подписал приложение с помощью мастера экспорта Eclipse.Когда я опубликовал это, пользователи начали жаловаться, что приложение ведет себя неправильно.(По сути, APK не имел необходимых изображений и аудио и, следовательно, демонстрировал некорректное поведение).

Некоторая информация о приложении и подписи, которую я пробовал.

  1. У меня облегченная версия и платная версия.Оба подписаны одной парой ключей.Облегченная версия работает отлично, а полная версия выдает ошибку.
  2. Я попытался снова экспортировать подписанные пакеты и попытался установить их непосредственно на устройство (вместо загрузки на рынок).Такое же поведение (т. Е. Приложения Lite работают правильно, а полная версия неверна)
  3. И в полной версии, и в версии Lite используется общая библиотека (база кода идентична. Различия заключаются в следующем.
  4. Полная версия имеет 5 разресурсы облегченной версии. Lite версия apk составляет ~ 2,6 МБ, а полная версия ~ 10,4 МБ. В полной версии у меня есть 170 изображений (в основном png размером 5-10 КБ) и ~ 55mp3 файлов. В Lite версии I45 изображений и 15 mp3
  5. В полной версии реализована LVL (проверка лицензии), а в облегченной версии нет. После прохождения LVL код просто вызывает класс библиотеки
  6. Если я используюEclipse для сборки и развертывания полной версии на телефоне (или эмуляторе), он работает правильно (я думаю, что при сборке и развертывании будет использоваться отладочный ключ для подписи)
  7. У меня есть обработка ошибок в коде, чтобы показать код для показаdummypic (знак вопроса), если ресурс отсутствует. Все мои изображения заменены на этот вопросительный знак. Просто чтобы добавить .. Этот dummypic находится в библиотекеd все остальные ресурсы (изображения) находятся в полной версии.
  8. Я проверил ресурсы, переименовав подписанный файл apk в .zip (спасибо NickT за предложение такого подхода).Все файлы ресурсов (аудио и изображения) присутствуют в zip-файле.

Любая помощь приветствуется.Приложение уже на рынке и, следовательно, хотел бы свести к минимуму негативное влияние.

Удалено LVL.Все та же ошибка

Пробовал комментировать код LVL и напрямую вызывать намерение.Все та же ошибка.Комментируя LVL, кодовая база для Lite и Full Version идентична.Только количество ресурсов отличается.Полная версия имеет все ресурсы Lite Version + ~ 5 раз ресурс.

Обновление Так я его временно исправил.Я удалил проект библиотеки и переместил все классы и ресурсы в проект внедрения (полная версия).Теперь это работает.

Как уже говорилось, это только временное исправление.Мне все еще нужно знать, как я могу это исправить с помощью библиотеки.Иначе мне придется создать много дублирования кода.

Ответы [ 7 ]

1 голос
/ 06 июля 2011

Могу поспорить, что это связано с разрешениями . Приложение, которое устанавливается первым, будет иметь права на чтение и запись для этой папки, а другое - нет.

Попробуйте использовать ContentProvider , чтобы сделать ваши изображения доступными для обоих приложений!

0 голосов
/ 08 августа 2011

Может быть, вы позволили флаг отладки в файл манифеста?

0 голосов
/ 11 июля 2011

Я столкнулся с этой проблемой в проектах Android, использующих другие проекты Android Library.Похоже, что AAPT (или часть ADT затмения) иногда дает сбой при создании идентификаторов R-файла (поэтому ресурсы присутствуют, но идентификаторы неверны).

Что быстро решило проблему для меня:Закройте «главный» проект и снова откройте его, установив опцию Build Automatically, или выполните очистку и перестройку этого проекта.В следующем экспортированном APK не должно быть проблемы "ресурсы не найдены".

0 голосов
/ 26 июня 2011

Два предложения:

1) У вас включен proguard? Если да, попробуйте отключить его и проверить. Если это работает, вам может потребоваться обновить ваш proguard.cfg (возможно, с помощью некоторого открытого класса -keep)

2) Удалите ваш R.java вручную и перекомпилируйте только полную версию!

0 голосов
/ 22 июня 2011

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

0 голосов
/ 29 апреля 2011

Я думаю, вам следует удалить, а затем переустановить приложение, это иногда случается, когда на вашем телефоне уже есть приложение, и вы устанавливаете его снова с другими ресурсами и файлами, не удаляя (но переопределяя), это дает странное поведение, попробуйте удалитьи затем переустановка должна работать для вас.

0 голосов
/ 28 марта 2011

Знак не должен влиять на ваш код. Я думаю, что проблема должна быть в исходном коде платной версии.

Вы тестируете в эмуляторе? от затмения? Вы также можете проверить подписанный apk в эмуляторе через " adb install application-signature.apk ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...