Ошибка установки с сообщением INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES. не удалось установить какое-либо приложение в конкретном устройстве [дубликат]

Легкий способ определить, является ли что-то «пройденным по ссылке», можно ли написать функцию «своп». Например, в C вы можете сделать:

void swap(int *i, int *j)
{
    int t;
    t = *i;
    *i = *j;
    *j = t;
}

Если вы не можете сделать эквивалент этого в Javascript, это не «передать по ссылке».

251
задан Johnny 6 July 2010 в 11:34
поделиться

15 ответов

Это означает, что новая копия вашего приложения (на вашей машине разработки) была подписана другим ключом подписи, чем старая копия вашего приложения (установлена ​​на устройстве / эмуляторе). Например, если это устройство, вы можете положить старую копию с другой машины разработки (например, на другую машину разработчика). Или старый подписан с вашим производственным ключом, а новый подписан с вашим отладочным ключом.

298
ответ дан CommonsWare 22 August 2018 в 22:37
поделиться
  • 1
    @atourney: вам нужно будет скопировать кейстор предыдущей машины (например, debug.keystore) на новую машину. – CommonsWare 14 December 2010 в 12:05
  • 2
    Обратите внимание, что debug.keystore не находится в вашем каталоге проекта. Обычно он находится в вашем каталоге ~/.android/. (см. developer.android.com/guide/publishing/… ) – ohhorob 10 February 2011 в 07:52
  • 3
    Как можно дать отладочному пакету другое имя? (например, {PRODUCT_NAME} Dev) – sandstrom 22 September 2011 в 11:46
  • 4
    @ChristianBongiorno: Синхронизировать ваши подписи ключей (например, debug.keystore). Выберите один, чтобы стать вашим хранилищем ключей, скопируйте его на все другие машины-разработчики, заменив их существующее хранилище ключей. – CommonsWare 19 June 2013 в 22:36
  • 5
    – Benjamin Kaiser 18 July 2013 в 07:12
3
ответ дан Arunkumar 22 August 2018 в 22:37
поделиться
5
ответ дан Edward 22 August 2018 в 22:37
поделиться

Я столкнулся с этим, тестируя новый Xoom. Я ранее устанавливал свое приложение из Marketplace. Позже, пытаясь протестировать новую версию приложения, я столкнулся с этой ошибкой.

Я исправил это, удалив приложение, которое было установлено через Marketplace (просто удерживайте и перетащите в корзину). После этого я смог развернуть мою версию разработки без каких-либо проблем.

46
ответ дан George Armhold 22 August 2018 в 22:37
поделиться
  • 1
    yes, uninstall решит эту проблему с разрешением. Мне было интересно, смогу ли я решить эту проблему без удаления – Johnny 17 March 2011 в 04:06
  • 2
    Получил новый телефон и забыли об этом. Как пометить это дважды :) – Anthony Horne 7 June 2015 в 11:19

Ничто из предыдущего не работало для меня. Проблема для меня была в том, что у меня был неправильный источник в моем Java Build Path для android-support-v7-appcompat. Когда вы перейдете в Project> Путь сборки> Настроить путь сборки>. На вкладке «Источник» убедитесь, что у вас есть поддержка android-support-v7-appcompat / gen, android-support-v7-appcompat / libs и android-support-v7-appcompat / src и ничего больше. Нажмите «ОК», и он должен работать.

0
ответ дан Immortal Code 22 August 2018 в 22:37
поделиться

Я получил эту ошибку даже после удаления оригинального APK, что было загадочным. Наконец, я понял, что я настроил несколько пользователей на моем Nexus 7 для тестирования и что приложение все еще установлено для одного из других пользователей. Как только я удалил его для всех пользователей, ошибка исчезла.

9
ответ дан inky 22 August 2018 в 22:37
поделиться

Сегодня у меня была такая же ошибка, но проблема была совсем не такой. Я использую ADB с Android, установленным в VirtualBox. Я попытался установить разные версии своего приложения (подписанный / не подписанный, режим отладки / выпуска) и получил две ошибки: INSTALL_FAILED_UID_CHANGED и INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES.

Теперь, глядя на /data/data/{package.name} Я обнаружил кучу файлов, которые все еще были там после удаления приложения. Я попытался rm -rf их без успеха: у меня были ошибки ввода / вывода.

Решение было:

  • Завершить работу VM
  • Установите изображение VDI с помощью vdfuse (чтение / запись)
  • Отредактируйте файл изображения Partition1 с помощью e2fsck
  • Umount и перезапустите VM
0
ответ дан Jérôme 22 August 2018 в 22:37
поделиться

Если вы столкнулись с неудачным развертыванием устройства Andorid или эмулятора с ошибкой «Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]» в окне вывода, просто удалите существующее приложение на устройстве или эмулятор и передислоцируйте. Отладочные сборки будут использовать сертификат отладки, в то время как сборка релизов будет использовать ваш настроенный сертификат. Эта ошибка просто позволяет вам узнать, что сертификат приложения, установленного на устройстве, отличается от того, который вы пытаетесь установить. В сценариях без разработки (хранилище приложений) это может быть индикатором поврежденного или иным образом измененного приложения, которое не безопасно устанавливать на устройстве.

1
ответ дан Linda Z 22 August 2018 в 22:37
поделиться

У меня была такая же проблема, пока я не понял, что работает симулятор, и adb пытался установить на этом

0
ответ дан Martin Lockett 22 August 2018 в 22:37
поделиться

У меня была эта проблема, пытаясь выполнить задачу градиента connectedDebugAndoidTest (или connectedAndroidTest) в Genymotion. Запуск его на обычный эмулятор решил проблему.

0
ответ дан Ognyan 22 August 2018 в 22:37
поделиться
  • 1
    Я тоже получал это в той же ситуации (тестирование с помощью Genymotion). Оказывается, это был конфликт с сигнатурой тестового пакета. Удаление тестового пакета решило проблему. – D-C0d3r 9 October 2017 в 21:35

Это команда удаления приложения с устройства с помощью adb:

adb uninstall <package name>
20
ответ дан Paul 22 August 2018 в 22:37
поделиться
  • 1
    – Janaka Bandara 3 March 2015 в 16:55
  • 2
    Я не понимаю, почему этот ответ имеет приоритеты. Он ясно говорит «БЕЗ УСТАНОВКИ». – Christian 8 May 2015 в 13:19
  • 3
    Нет флага pm для замены пакета с несогласованным сертификатом, не так ли? Намерение безопасности? – JohnyTex 9 November 2016 в 12:03

Для чего это стоит, я столкнулся с этой проблемой после добавления нового плагина к моему проекту в Кордове. У меня была кордовая сборка и установка непосредственно на устройство через USB.

Я исправил ее, удалив приложение с устройства, а при следующем развертывании проблем не было.

1
ответ дан radicalmatt 22 August 2018 в 22:37
поделиться

Поскольку проверка основана на имени пакета, вы можете изменить имя пакета внутри файла config.xml или манифеста для другого имени, которое вы хотите.

При публикации приложения не забудьте изменить имя!

0
ответ дан Raphael 22 August 2018 в 22:37
поделиться

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

20
ответ дан supermoogle 22 August 2018 в 22:37
поделиться
  • 1
    Большой! Работает после команды adb uninstall <package name>. Благодарю. – Paul 8 January 2013 в 09:30
  • 2
    У меня был более уникальный случай, но этот ответ привел к решению. У меня было приложение, установленное через CLI cordova локально, а также один, установленный из сборки PG. Мне пришлось удалить оба приложения, чтобы ошибка исчезла. – DemitryT 28 June 2014 в 21:30
  • 3
    @Paul Ваше превосходительство - король Павел I, в то время как я не являюсь первоначальным допросом, ваша команда работала для меня (и, несомненно, другие, учитывая, насколько вы подтвердили свой комментарий). Могу ли я предложить вам опубликовать это как ответ? – barlop 12 August 2014 в 02:40
  • 4
    @barlop: Я отправил ответ с помощью команды, чтобы быть более заметным для других, которые также могут столкнуться с этой проблемой. Благодарю. – Paul 13 August 2014 в 14:52
  • 5
    Я не понимаю, почему этот ответ имеет приоритеты. Он ясно говорит «БЕЗ УСТАНОВКИ». - – Christian 8 May 2015 в 13:20

Просто удалите старую сборку с устройства и переустановите ее. Поскольку device.keystore уже существует в устройстве, просто удалите сборку и переустановите APK, и все это.

Спасибо

3
ответ дан user1330971 22 August 2018 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: