Ошибка установки: INSTALL_PARSE_FAILED_NO_CERTIFICATES

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

Приложение не будет установлено из Eclipse, и это появится на консоли: Ошибка установки: INSTALL_PARSE_FAILED_NO_CERTIFICATES.

LogCat обеспечивает некоторую подсветку: пакет com.xxx не имеет сертификатов на входных ресурсах /fonts/helvetica _neue.ttf; не обращая внимания!

Значение, которое устройство (или эмулятор) считает, что этот файл не был подписан.

Обычные решения, предлагаемые для этого:
- Переименуйте повреждающий файл. Мы пробовали это, тогда он жалуется на следующий файл, затем на следующий и т.д.
- Добавить фиктивный файл. Пробовал тоже. Он жалуется на новый файл, независимо от того, что он назвал.
- Скомпилируйте для Android больше 1.6. Мы собираем для 2.3.

Стоит отметить, что это происходит только при запуске unit test. Мы можем установить "реальное" приложение самостоятельно без каких-либо трудностей. Мы также используем Maven и, конечно же, Maven Android-плагин.

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

Ответ 1

Теперь это исправлено. Если кто-то окажется с той же уникальной настройкой проекта и ошибкой, решение может иметь какое-то значение.

Проблема связана с конфигурацией наших справочников ресурсов в POM нашего тестового проекта (проект, содержащий наши модульные тесты). Они указывали на каталоги ресурсов проверяемого проекта. Эта настройка должна работать, поэтому я собираюсь предположить, что это ошибка в плагине Maven Android, которая заставляет ресурсы оставаться без знака.

Итак, решение заключалось в том, чтобы удалить ссылки на внешние каталоги ресурсов (я не могу сказать, почему это было сделано таким образом изначально, но удаление их, по-видимому, не имеет вредных последствий) и настроить каталоги ресурсов стандартным способом (принимая как пример POM, предоставленный архетипом проекта плагина maven с тестами).

Ответ 2

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

Ответ 3

Я понял, что это связано с моей версией JDK. У меня была проблема с ant, и это было связано с этим ОСТОРОЖНО, упомянутым в документации:

http://developer.android.com/guide/publishing/app-signing.html#signapp

Внимание: с JDK 7 алгоритм подписывания по умолчанию изменился, и вам нужно указать алгоритмы подписи и дайджесты (-sigalg и -digestalg), когда вы подписываете APK.

У меня есть JDK 7. Я не могу говорить для вашего Maven, но это, вероятно, та же проблема. В моем журнале Ant я использовал -v для подробностей и показал

$ ant -Dadb.device.arg=-d -v release install
[signjar] Executing 'C:\Program Files\Java\jdk1.7.0_03\bin\jarsigner.exe' with arguments:
[signjar] '-keystore'
[signjar] 'C:\cygwin\home\Chloe\pairfinder\release.keystore'
[signjar] '-signedjar'
[signjar] 'C:\cygwin\home\Chloe\pairfinder\bin\PairFinder-release-unaligned.apk'
[signjar] 'C:\cygwin\home\Chloe\pairfinder\bin\PairFinder-release-unsigned.apk'
[signjar] 'mykey'
 [exec]     pkg: /data/local/tmp/PairFinder-release.apk
 [exec] Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

Я подписал JAR вручную и запустил его, но он дал немного другую ошибку:

$ "$JAVA_HOME"/bin/jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore release.keystore -signedjar bin/PairFinder-release-unaligned.apk bin/PairFinder-release-unsigned.apk mykey
$ zipalign -v -f 4 bin/PairFinder-release-unaligned.apk bin/PairFinder-release.apk
$ adb -d install -r bin/PairFinder-release.apk
        pkg: /data/local/tmp/PairFinder-release.apk
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
641 KB/s (52620 bytes in 0.080s)

Я нашел, что ответил здесь.

Как работать с INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES без удаления

Мне нужно было только удалить его, а потом он сработает!

$ adb -d uninstall com.kizbit.pairfinder
Success
$ adb -d install -r bin/PairFinder-release.apk
        pkg: /data/local/tmp/PairFinder-release.apk
Success
641 KB/s (52620 bytes in 0.080s)

Теперь мне нужно изменить файл build.xml, чтобы использовать эти параметры при подписании!

Ответ 4

У меня была эта проблема с MotoDev 3.0.0

Решением было удалить эмулятор и создать новый.

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

Ответ 5

У той же проблемы было то, что я настроен на использование App Store вместо отладки в целевой конфигурации Android, и я еще не настроил хранилище приложений. Переключился обратно на отладку, и все было нормально.

Ответ 6

выберите Java SE 6 в приложении предпочтений Java

Ответ 7

Для тех, у кого есть эта проблема...

Выберите V1 (подпись jar) вместо V2 (полная подпись apk)

Выбор V2 также может вызвать эту проблему.

введите описание изображения здесь