INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES в adb install
Тот же проект Android построен в режиме отладки, иногда с Eclipse, иногда с ant (на машине сборки).
Если я сначала установил конструкцию ant, а затем попытаюсь запустить отладку Eclipse, консоль Eclipse отобразит
[2012-03-20 13:32:26 - myproject] Повторная установка завершилась неудачно из-за разных подписей приложений. [2012-03-20 13:32:26 - myproject] Вы должны выполнить полную деинсталляцию приложения. ПРЕДУПРЕЖДЕНИЕ: Это приведет к удалению данных приложения!
[2012-03-20 13:32:26 - myproject] Пожалуйста, выполните "adb uninstall com.myproject" в оболочке. [2012-03-20 13:32:26 - myproject] Запуск отменен!
Если я делаю это наоборот, то есть отлаживаю Eclipse (включая установку apk), а затем попытаюсь установить конструкцию ant из командной строки, я получаю:
Отказ [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
Что случилось с моими сертификатами/подписанием?
Ответы
Ответ 1
Проблема заключается в том, что файлы apk (во время сборки Eclipse и ant) были подписаны с разными сертификатами. Чтобы согласовать сигнатуры между сборками, которые были построены на разных машинах, поместите хранилище отладки в управление версиями:
- Используйте ключ keytool-importkeypair для создания пары ключ/сертификат:
fooobar.com/questions/92390/...
- Поместите созданный файл хранилища ключей в элемент управления версиями
- Установите Eclipse для использования файла: Windows > Предпочтения > Android > Сборка
- Задайте свойства ant для использования файла: fooobar.com/questions/31937/...
Это удобно, если вы склонны перекрестно устанавливать сборки из своей машины и сборки.
Ответ 2
Для меня проблема в том, что у меня было такое же приложение, которое уже установлено с другим ключом. Удаление старого приложения решило проблему, как указано здесь:
fooobar.com/questions/114231/...
Ответ 3
Старый установленный .apk имеет другой сертификат, чем новый, который будет установлен или он уже установлен на вашем устройстве с другим ключом. Это означает, что ваше приложение было ранее установлено с другого компьютера, который дал ему разные учетные данные.
Итак, решение:
uninstall the existing .apk
а затем
re-install the new .apk
Ответ 4
Откройте настройки Eclipse.
Откройте раздел Android в левом списке.
Выберите "Build" в разделе Android
Помимо "Custom debug store" перейдите в хранилище ключей под установкой Android SDK, а не тот, который Eclipse выбрал в вашем домашнем каталоге.
Теперь андроид ant build и eclipse используют одно и то же хранилище ключей.
Ответ 5
В IntelliJ, хотя вы можете выбрать хранилище отладки для отладки подписи ваших приложений, вы не можете вводить пароль хранилища ключей или ключевое слово. Вы можете экспортировать свои сертификаты выпуска и импортировать их в хранилище отладки и изменить ключевые слова и ключевые пароли на "андроид". Я подготовил пошаговые инструкции для него: http://www.denizoguz.com/2013/01/12/failure-install_parse_failed_inconsistent_certificates/
Ответ 6
Если ваша строительная система gradle, просто используйте команду follwong для ее удаления в Windows:
.\gradlew.bat uninstallDebug
или в Linux:
./gradlew uninstallDebug
И затем:
./gradlew install
Это сертификационная проверка для установки и удаления в том же пакете на Android. Если вы используете два разных ПК (компьютера), подключенных к одному телефону, вы получите эту ошибку при подключении телефона к этим ПК. Лучший выбор - привязать один ПК к одному физическому телефону.
Ответ 7
Другое решение
Увеличьте свой код версии в файле build.gralde вашего приложения
defaultConfig {
...
versionCode 1
...
}
defaultConfig {
...
versionCode 2
...
}
Синхронизировать сейчас
![введите описание изображения здесь]()
Создать чистый проект
Запустите приложение