Ошибка [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.