INSTALL_FAILED_UPDATE_INCOMPATIBLE, коли я намагаюся встановити компільований .apk на пристрій


291

Я склав запускаючий засіб Trebuchet з CyanogenMod 9 і намагаюся встановити його за допомогою adb:

$ adb install out/target/product/generic/system/app/Trebuchet.apk
3986 KB/s (7870141 bytes in 1.928s)
    pkg: /data/local/tmp/Trebuchet.apk
Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]

Я спробував Nexus S з CM9 та Galaxy Nexus з запасом JB. Чому я отримую цю помилку?

EDIT: У моєму випадку я намагався перевстановити системний пакет із менеджером пакунків. Це не підтримується, тому я отримав цю помилку. Джерело помилки може відрізнятися у вашому випадку.


2
на деяких останніх пристроях, що мають кілька користувачів, перевірте, чи встановлено додаток для інших користувачів (тобто вхід для гостей). Тестер у моїй компанії годинами боровся з цим питанням, коли він прийшов до мене, мені також знадобилося 5-10 хвилин, щоб дізнатися, що той самий додаток встановлено під іншим гостьовим входом на цьому пристрої, тому не було показувати на головному екрані чи навіть не в налаштуваннях
Shirish Herwade

Відповіді:


500

це означає, що програма, яку ви хочете встановити, вже встановлена. просто вийміть старий і повторіть спробу.


27
Працювало для мене, але мені теж довелося один раз перезавантажитись.
droidgren

28
Мені довелося зайти в Налаштування -> Керувати програмами, щоб знайти додаток, і вибрати Видалити його звідти, оскільки воно не з’являлося в іншому місці.
Девід Конліск

23
Також може знадобитися видалення з усіх облікових записів користувачів (у мого Nexus 10 було 3 користувачі).
Тайлер Кізер

1
@TylerKiser Дякую за голову над цим.
Джейкоб Холлоуей

1
що робити, якщо я просто спробую оновити наявний додаток? це видалить усе моє останнє додаток, збережене локально
чудо-дох

184

Спробуйте

adb uninstall package-name

Це працює для мене. Я видалив додаток за допомогою резервного копіювання Titanium. Однак я думаю, що резервна копія Titanium не видалила повністю мою програму.


1
Я помітив те саме, використовуючи DevDrawer. Це спрацювало.
tir38

1
Дякую! Це врятувало мене від величезного незрозумілого головного болю. Не впевнений, як я потрапив у такому стані ... Я налагоджую додаток у Xamarin Studio та Visual Studio, і він працював нормально, поки не було ... ну добре.
Джеймі

1
Коли все на прийнятій відповіді не вдалося ... це спрацювало.
DennisWelu

Чудово! Просто і легко. Не потрібно перезавантажувати це рішення.
taciosd

Це працює для мене. Перш ніж я спробував видалити та перезавантажити вручну, і нічого не зміниться, лише з командою adb це працює. Дякую.
ricky.tribbia

101

Видалення програми було б достатньо, щоб уникнути цієї проблеми.

INSTALL_FAILED_UPDATE_INCOMPATIBLE

але іноді навіть видалення повідомлення піднімається знову, воно відбувається в ОС Android 5.0 +, тому це рішення:

Перейдіть до Settings>, Appsі ви знайдете свою програму з повідомленням:

"Не встановлено для цього користувача" введіть тут опис зображення

Доводиться видаляти вручну для всіх користувачів !, тоді ми зможемо без проблем встановити наш складений додаток.

введіть тут опис зображення

Інші варіанти:

  • Видаліть стару програму та встановіть її знову.

  • Використовуйте команду Android Debug Bridge:

    видалити adb [ІМ’Я ПАКЕТИ]


2
Дякую! Це те, що мені було потрібно. Чому і коли вони почали це робити саме так?
Нік

мабуть з OS 5.0 +
Jorgesys

1
Спочатку я не зміг знайти свій деінстальований додаток у розділі Налаштування -> Програми. Виявилося, що в Lollipop 5.1.1 видалений додаток перелічувався за назвою пакета, а не за назвою програми. Отже, якщо ви видалили adb, а встановлення adb все-таки не вдалося, шукайте видалену програму під назвою пакета. Отже, com.acme.wileycoyote буде вказаний в алфавітному порядку під "c", а не "w".
Йоджимбо

Дякую, це працює! У моєму телефоні немає опції "Видалити для всіх користувачів", я видаляю його,
ввівши

1
Що "всі користувачі", коли користувач точно один - МЕН !!! Так чи інакше, це працює - підтримується.
WindRider

21

Два способи, якими можуть бути твори

1: Видаліть додаток з мобільного пристрою вручну

2: Відкрийте командний рядок, простежте шлях adbта виконайте наступну команду

adb uninstall your_package_name

2
Єдиний спосіб роботи пристроїв без дисплея.
DenisKolodin

1
наприклад: "adb uninstall net.gavin.hello", де назва пакета є на AndroidManifest.xml як "package =" net.gavin.hello ""
Гавін Сімпсон,

9

Я просто перейменував пакунок, і він працював на мене.

Або якщо ви використовуєте Ionic, ви можете видалити додаток і спробувати ще раз. Це відбувається, коли ionic виявить, що додаток, який ви розгортаєте, не надходить із тієї ж збірки. Це часто трапляється при зміні з ПК.


Більше нічого не працювало для мене. Дякую за чудову ідею!
Кен Песписа

2
Занадто багато роботи, я б створив резервну копію та вилучив apk та встановив його знову.
певік

не працював на Android 6.0.1. Довелося видалити додаток на пристрої та перевстановити той самий пакет.
kakyo

13
"Я просто перейменував пакунок", це не обійдеться, адже ви створюєте ще одну програму!
Хорхесіс

8
  1. перейти до вашої папки adb \ sdk \ platform-tools \
  2. тип cmd
  3. type: adb reount у командному вікні
  4. оболонка adb
  5. су
  6. rm /system/app/YourApp.apk
  7. Перезавантажте пристрій

що перераховує? Чи можу я за допомогою цієї версії зберігати випуск та налагодження та легко монтувати та перезавантажувати їх?
piotrek1543

2
Не має великого сенсу, оскільки користувацькі APK не зберігаються у, /system/appале/data/app
m0skit0

@ piotrek1543 adb remountперераховує системний розділ як читання-запис, а не стандартний режим читання.
m0skit0

8

Питання полягало в тому, чому він отримує цю помилку. Видалення вирішить цю проблему, але в моєму випадку, коли я встановлював компільовану версію apk, проблема виникла. Я намагався створити оновлення для своєї програми. Отже, що я зробив, я створив підписаний apk, а потім спробував встановити apk і apk встановлений ідеально. Тож, замість того, щоб видалити старий apk, мені довелося підписати нове оновлення, а потім встановити його.


1
Те ж саме. Спробуйте перевірити процес оновлення. Тож видалення не є варіантом.
Мартін

6

Це може бути тому, що у вас є кілька користувачів на пристрої, і ви щойно видалили додаток на одному ( залишивши apk ще присутнім для іншого ).

Я видалив з усіх облікових записів, і він працював згодом.


Ви маєте на увазі акаунти Google?
CACuzcatlan

Так, саме те, що я маю на увазі.
neteinstein

5

Це може статися, якщо ви підписуєте заявку з іншим сертифікатом. Ви завжди можете використовувати

adb install -r myapk.apk

перезаписати існуючий apk на своєму пристрої, але ви все одно отримаєте помилку, якщо ви підписали новий apk з іншим сертифікатом, ніж встановлений apk.

У цьому сценарії вам потрібно буде видалити apk зі свого пристрою перед тим, як спробувати встановити. Однак це може вплинути і на вашу заявку, оскільки ваше оригінальне підписання може бути прив’язане до певних API розробки, тому вам може знадобитися оновити консоль за допомогою нових облікових даних.


4

Я встановив Astro файловий менеджер і шукав попередню версію apk-файлу, знайшов його на sdcard і видалив apk-файл за допомогою файлового менеджера Astro.


4

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

Я зазвичай використовую adb, і це робить трюк adb uninstall <your-package-name>


4

якщо APK вбудований у проект з файлом Android.mk Можливо, через те, що сертифікат знаку змінили.

у своїй проблемі я додаю LOCAL_CERTIFICATE: = платформу. так як оригінал apk підписаний без цього тегу.


Це справді коментар, а не відповідь. З трохи більше представників ви зможете публікувати коментарі .
Енамул Хассан

2

У моєму випадку не було жодної версії програми, яку я міг би знайти через диспетчер пристроїв або Astro.

Що я в кінцевому підсумку робив:

1) Завантажте останню версію програми з магазину додатків

2) Додаток ще не було видно в диспетчері пристроїв, поки я не перезапустив свій пристрій.

3) Видаліть додаток із диспетчера пристроїв

4) Запустіть мій проект ще раз

5) Все працює

Сподіваюся, що це комусь допоможе


2

C: \ android-sdk \ platform-tools \ adb.exe: Команда не вдалася з кодом виходу 1

Вихід помилки: adb: не вдалося встановити додаток \ платформи \ android \ app \ build \ outputs \ apk \ debug \ app-debug.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.example. app1підписи не відповідають раніше встановленій версії; ігнорування!]

Рішення:

У вас уже встановлено додаток app1на телефон (в основному завантажуйте з ігрової консолі, або ключ завантаження змінено)
Видаліть додаток.

Детальніше:

Можливо, ви вже завантажили цей додаток у ігровий магазин за допомогою клавіші завантаження, ігрова консоль застосувала до нього свій власний підпис. Ось чому додаток у вашому телефоні, завантаженому з google play, не має тієї самої підписи вашого ключа завантаження.

Видаляючи додаток, не існує версії додатка для магазину ігрового магазину, тому невідповідність, коли ви встановлюєте нову версію на свій телефон.

Сподіваюся, що це допомагає.


1

Перейдіть у розділ Налаштування / Програми / Шукайте додаток та видаліть ...

Це працювало для мене


1
  1. Перейдіть у розділ Налаштування / Програми / Шукайте додаток та видаліть ...
  2. відкрити командний рядок та "видалити adb"

Це працювало для мене


1

Для користувачів MIUI, крім звичайної опції налагодження USB, обов’язково ввімкніть ці налаштування:

Встановити через USB
налагодження USB (Налаштування безпеки)

тоді прийміть підказку, коли ви спробуєте знову встановити додаток.


1

У мене виникла та сама проблема, і я вирішив її виправити.

  1. Налаштування> Зберігання> Очистити кешовані дані
  2. Налаштування> Програми> Видаліть програми, які там відображаються. Я видалив свої додатки, але вони там показувались.
  3. Перезавантажте, а потім все пішло нормально.

3
2-й бал допоміг. У моєму випадку додаток не встановлено для поточного користувача, але встановлено для інших користувачів. Отже, я натиснув додаток у списку програм і всередині сторінки деталей, натиснув кнопку Додатково (три вертикальні точки). Там була опція "Видалити для всіх користувачів". Це зробило це для мене. Дякую!
Harisewak

1

Я просто витратив годину, намагаючись налагодити це, а потім зрозумів, що я підключений до емулятора замість телефону. Так що, хоча я успішно видалив додаток на своєму телефоні, він все ще не працює. Дурна помилка, але, можливо, це допоможе комусь іншому.


0

У моєму випадку я встановив програму від Playstore і після того, як я намагаюся запустити з Eclipse або Android Studio, тому він спробує встановити знову на той APK, який не дозволить.

Отже, перш за все, ви повинні видалити цей підписаний APK, а потім спробувати.

Дякую.


0

RankoR @ ви повинні встановити програму з іншого комп'ютера. у моєму випадку ось проблема виникла .. все, що вам потрібно зробити, це просто видалити програму та перевстановити її або запустити з комп’ютера, на якому ви працюєте .. це може бути пізньою відповіддю, але це допоможе комусь .. спасибі


0

Це сталося зі мною, коли я встановив розробку розробників за допомогою миттєвого запуску та видалив із Google Play. З певних причин дані миттєвого запуску все ще знаходяться на пристрої і не можуть знову встановити / видалити додаток.

Єдиний спосіб виправити це: - відключити функцію Instant Run в андроїд-студії - встановити з андроїд-студії (вона повинна працювати тільки звідси) - видалити додаток

тепер його слід чисто встановити з Google Play або adb.



0

Якщо ваш файл Manifest має цей рядок -

android: sharedUserId = "android.uid.system"

викликає цю помилку! просто прокоментуйте цей рядок, і ви добре піти !!


0

Я не бачу, щоб хтось згадував мій випадок, тому дозвольте мені додати його - це відбувається, коли ви створюєте додаток в одному режимі (наприклад, Dev), а потім намагаєтесь замінити його іншим режимом (наприклад, виробництво).

Рішення таке ж, як і в інших випадках - видаліть додаток на пристрої / симуляторі та запустіть ще раз.


0

Якщо ви намагаєтеся налагоджувати з іншого комп’ютера, ніж раніше, ви отримаєте жахливу помилку INSTALL_FAILED_UPDATE_INCOMPATIBLE. Однак є спосіб продовжити без видалення програми та втрати даних.

Щоб дізнатись, як перенести потрібну дебег.keystore, щоб ви не отримали повідомлення "У пристрої вже є додаток з тим самим додатком, але іншим підписом. Для цього вам доведеться видалити існуючу програму." (і втратити свої дані). Див. Розділ Оновлення програми на іншій машині з тим же debug.keystore в android


0

Телефони Samsung Galaxy мають функцію, відому як Безпечне видалення додатка з папки, що вирішила для мене проблему.

також adb uninstallname name не може видалити додаток із безпечної папки.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.