2012-03-20 4 views
22

Тот же проект Android построен в режиме отладки, иногда с Eclipse, иногда с ant (на сборке).INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES на adb install

Если я сначала установить муравей строить, а затем попытаться запустить отладку Eclipse, дисплеев консоли Eclipse,

[2012-03-20 13:32:26 - MyProject] Re-установки не удалось из-за различные подписи приложений. [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), а затем попытаться установить муравей сборки из командной строки, я получаю:

Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES ]

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

+0

возможный дубликат [Как работать с INSTALL \ _PARSE \ _FAILED \ _INCONSISTENT \ _CERTIFICATES без unins (http://stackoverflow.com/questions/3185444/how-to-deal-with-install-parse-failed-inconsistent-certificates-without-uninstal) – ForeverLearning

ответ

15

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

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

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

+0

У меня такая же проблема, но она находится на той же машине , проект и каталог. Это похоже на то, что ant и eclipse не используют одно и то же (отладочное) хранилище ключей ... привыкли работать, но я недавно обновился до Android Tools 20. –

1

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

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

1

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

46

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

https://stackoverflow.com/a/10280878

26

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

Так решение:

uninstall the existing .apk

, а затем

re-install the new .apk

+0

Спасибо, что это сработало! –

0

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

.\gradlew.bat uninstallDebug 

или в Linux:

./gradlew uninstallDebug 

И потом:

./gradlew install 

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

+0

Имеет ли это какое-либо отношение к вопросу? – techraf

0

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

defaultConfig { 
     ... 
     versionCode 1 
     ... 
    } 

defaultConfig { 
     ... 
     versionCode 2 
     ... 
    } 

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

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

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

Смежные вопросы