Помилка [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файл, встановлений на пристрої. Це легко відбувається, якщо ви встановили програму налагодження, а потім намагаєтесь встановити програму 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"

(Короткий варіант для створення та встановлення)


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.