INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES при установке adb - PullRequest
24 голосов
/ 20 марта 2012

Тот же проект 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]

Что не так с моими сертификатами / подписью?

Ответы [ 7 ]

46 голосов
/ 04 февраля 2013

Для меня проблема была в том, что у меня уже было установлено то же приложение с другим ключом. Удаление старого приложения решило проблему, как отмечено здесь:

https://stackoverflow.com/a/10280878

28 голосов
/ 18 декабря 2013

Старый установленный .apk имеет другой сертификат, чем новый, который будет установлен, или он уже установлен на вашем устройстве с другим ключом. Это означает, что ваше приложение ранее было установлено с другого компьютера, который дал ему другие учетные данные.

Итак, решение:

uninstall the existing .apk

, а затем

re-install the new .apk

17 голосов
/ 20 марта 2012

Проблема в том, что файлы apk (во время Eclipse и ant build) были подписаны разными сертификатами .Чтобы согласовать подписи между сборками, созданными на разных компьютерах, поместите хранилище ключей отладки в элемент управления версиями:

  • Используйте keytool-importkeypair для создания пары ключ / сертификат: https://stackoverflow.com/a/4257367/1097104
  • Поместите созданный файл хранилища ключей в систему управления версиями
  • Настройте Eclipse для использования файла: Windows> Настройки> Android> Build
  • Установите свойства ant для использования файла: https://stackoverflow.com/a/9019925/1097104

Это удобно, если вы склонны к перекрестной установке сборок с собственного компьютера и сборки.

2 голосов
/ 28 марта 2016

Если ваша сборочная система является gradle, просто используйте команду follwong для ее удаления в Windows:

.\gradlew.bat uninstallDebug

или в Linux:

./gradlew uninstallDebug

И затем:

./gradlew install

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

1 голос
/ 12 января 2013

В IntelliJ, хотя вы можете выбрать отладочное хранилище ключей для отладки подписи ваших приложений, вы не можете ввести пароль хранилища ключей или пароль. Вы можете экспортировать сертификаты выпуска и импортировать их в хранилище ключей отладки, а также изменить хранилище ключей и пароли ключей на «android». Я подготовил пошаговые инструкции для него: http://www.denizoguz.com/2013/01/12/failure-install_parse_failed_inconsistent_certificates/

1 голос
/ 18 июля 2012

Открыть настройки Eclipse. Откройте раздел Android в левом списке. Выберите область «Сборка» под Android Рядом с "Custom store debug store" перейдите к хранилищу ключей в вашем Android SDK, а не в тот, который Eclipse выбрал в вашем домашнем каталоге.

Теперь сборка and затмение для android ant использует одно и то же хранилище ключей.

0 голосов
/ 15 июня 2017

Другое решение Увеличьте код вашей версии в файле build.gralde вашего приложения

 defaultConfig {
        ...
        versionCode 1
        ...
  }

 defaultConfig {
        ...
        versionCode 2
        ...
  }

Синхронизировать сейчас enter image description here

Построить чистый проект

Запустите ваше приложение

...