Ошибка [INSTALL_FAILED_ALREADY_EXISTS] при попытке обновить приложение


388

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

Чего мне не хватает?

Ответы:


756

Если вы устанавливаете приложение на свое устройство через adb installвас, вы должны искать вариант переустановки, который должен быть -r. Так что если вы это сделаете, adb install -rвы сможете установить без удаления ранее.


1
adb install -rне всегда работает (у меня EVO 4G от Sprint, который отказывается вести себя как положено). Единственный обходной путь, который я нашел, - это удалить приложение вручную. Иногда мне даже приходится делать это через пользовательский интерфейс телефона, потому что EVO такой темпераментный.
— jww

21
Я пришел сюда, потому что я хотел знать, adb install -rбудет ли сначала удалить, а затем установить или обновить мое приложение. Хотя adbописание не очень понятно ( -r: заменить существующее приложение ), adb install -rоно действительно обновляет ваше приложение и не удаляет данные вашего приложения. Поэтому подходит для тестирования обновления вашего приложения (именно ту информацию, которую я искал).
— Тибо Д.

8
Для людей, утверждающих, что adb install -rэто не работает: я предполагаю, что .apkфайл, который вы пытаетесь установить, не был подписан тем же сертификатом разработчика, что и .apkфайл, установленный на устройстве. Это легко происходит, если вы установили приложение Debug, а затем пытаетесь установить приложение Release или наоборот. Вы не можете обновить приложение, если оно не подписано тем же сертификатом.
— Тибо Д.

1
Если вы используете несколько учетных записей, вам может потребоваться удалить их из всех учетных записей (см. Ответ GregP). Это сработало для меня после того, как я это сделал.
— JD Sandifer

не работает, мое приложение является системным приложением, и это не решает мою проблему: /
— htafoya

11

Вы получаете эту ошибку, потому что приложение с именем пакета, совпадающим с вашим приложением, уже существует. Если вы уверены, что ранее не устанавливали одно и то же приложение, измените имя пакета и попробуйте.

Иначе, вот что вы можете сделать:

  1. Удаление приложения с устройства: перейдите в «Настройки» -> «Управление приложениями» и выберите «Удалить» ИЛИ
  2. Удалите приложение с помощью интерфейса командной строки adb: введите adb uninstall После выполнения этого шага попробуйте установить приложение еще раз.

Мое приложение не появлялось ни в меню, ни в магазине приложений, но нашло его благодаря советам Мухаммеда.
— DavidP

2
Это не хорошее решение. Что если у вас есть куча состояний вроде SharedPrefs, сохраненных в приложении? Если вам трудно удалить из системы, вам придется заново настраивать приложение!
— Игорь Ганапольский

Это было решение, которое мне было нужно adb uninstall my.package. Как ни странно, он не удалил префы, которые я хотел удалить, но он избавился от пакета, что и мешало мне переустановить его.
— JMD

6

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


Это была моя точная проблема! Попытка удаления - как с помощью adb, так и вручную, но adb install <package.apk>продолжала давать сбой, даже если приложение больше не было видно в списке приложений. Оказывается, это было все еще там на другом аккаунте на моем устройстве ... Спасибо!
— JD Sandifer

Это исправило это и для меня. Для получения информации об устройстве, которое необходимо удалить для всех пользователей, мне нужно было перейти в «Настройки»> «Приложения», нажать «Приложение», нажать эллипсы в правом верхнем углу и нажать «Удалить для всех пользователей».
— d219

3

Установить

adb install -r exampleApp.apk

( -rОн заменяет существующую копию, добавляя ее -sпри установке на эмуляторе)

Убедитесь, что приложение подписано одинаково и имеет тот же debug/releaseвариант

бонус

Я установил псевдоним в моем ~/.bash_profile, чтобы сделать его командой 2char.

alias bi="gradlew && adb install -r exampleApp.apk"

(Сокращение от Build and Install)


0

Если проблема не устранена, попробуйте удалить приложение с помощью командной строки. просто добавьте команду и adb uninstall com.example.yourpackagename попробуйте переустановить снова. Это работает!


0

На моем планшете Android 5 каждый раз, когда я пытаюсь использовать adb для установки подписанного релиза apk, я получаю сообщение об [INSTALL_FAILED_ALREADY_EXISTS]ошибке.

Сначала я должен удалить пакет отладки. Но я не могу удалить с помощью диспетчера приложений устройства !

Если вы действительно удалите отладочную версию с помощью диспетчера приложений , то мне придется повторно запустить вариант отладочной сборки из Android Studio, а затем удалить его с помощьюadb uninstall com.example.mypackagename

Наконец, я могу использовать adb install myApp.apkдля установки подписанного релиза apk.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.