Подтвердить что ты не робот

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]

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

4b9b3361

Ответ 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
        ...
  }

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

Создать чистый проект

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