Помилка [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.