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

Я скомпилировал лаунчер 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. Почему я получаю эту ошибку?

РЕДАКТИРОВАТЬ: В моем случае я попытался переустановить пакет системы с помощью диспетчера пакетов. Это не поддерживается, поэтому я получил эту ошибку. Источник ошибки может отличаться в вашем случае.

32 ответа

Решение

Я просто переименовал пакет, и он работал для меня.

Или, если вы используете Ionic, вы можете удалить приложение и повторить попытку, это происходит, когда ionic обнаруживает, что приложение, которое вы развертываете, не из той же сборки. Это часто случается, когда вы переходите с ПК.

Это означает, что приложение, которое вы хотите установить, уже установлено. просто удалите старую и попробуйте снова.

Пытаться

adb uninstall package-name

Меня устраивает. Я удалил свое приложение с помощью Titanium Backup. Тем не менее, я думаю, что резервная копия Titanium полностью не удалила мое приложение.

Удаление приложения будет достаточно, чтобы избежать этой проблемы.

INSTALL_FAILED_UPDATE_INCOMPATIBLE

но иногда даже удаление сообщения возникает снова, это происходит в Android OS 5.0 +, так что это решение:

Идти к Settings > Apps и вы найдете ваше приложение с сообщением:

"Не установлено для этого пользователя"

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

Другие варианты:

  • Удалите старое приложение и установите снова.
  • Используйте команду Android Debug Bridge:

    adb удалить [ИМЯ ПАКЕТА]

Два способа, которыми можно работать

1: удалить приложение с мобильного устройства вручную

2: Открыть командную строку, путь трассировки adbи выполните следующую команду

adb uninstall your_package_name
  1. перейдите в папку adb \sdk\platform-tools\
  2. тип cmd
  3. введите: adb remount в командном окне
  4. adb shell
  5. су
  6. rm /system/app/YourApp.apk
  7. Перезагрузите ваше устройство

Вопрос был в том, почему он получает эту ошибку. Удаление решит эту проблему, но в моем случае, когда я устанавливал скомпилированную версию apk, возникла проблема. Я пытался создать обновление для моего приложения. Итак, что я сделал, я построил подписанный apk, а затем попытался установить apk, и apk установился идеально. Итак, вместо удаления старого apk, мне пришлось подписать новое обновление, а затем установить его.

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

Я удалил во всех учетных записях, и это сработало впоследствии.

Это может произойти, если вы подпишете свою заявку другим сертификатом. Вы всегда можете использовать

adb install -r myapk.apk

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

В этом случае вам нужно будет удалить apk с вашего устройства перед попыткой установки. Однако это также может повлиять на ваше приложение, поскольку ваша первоначальная подпись может быть привязана к определенным API-разработчикам, поэтому вам может потребоваться обновить консоль новыми учетными данными.

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

Я обычно использую ADB, и это делает трюкadb uninstall <your-package-name>

Я установил файловый менеджер Astro и искал предыдущую версию apk-файла, нашел ее на SD-карте и удалил apk-файл с помощью файлового менеджера Astro.

Если APK встроен в проект с файлом Android.mk. Может быть, это из-за знака сертификата был изменен.

в моей проблеме я добавил LOCAL_CERTIFICATE:= платформа. так как оригинальный apk подписан без этого тега.

Это может быть повышено, когда приложение установлено на вашем устройстве как другая подпись, а затем приложение (apk), которое вы пытаетесь установить.(Простыми словами, более раннее приложение создается с помощью "System-A ", а теперь создается приложение с помощью "System-B"и пытается установить) Вы можете решить эту проблему одним или другим способом, как показано ниже.

Опция 1:

   Uninstall the Application in your Device and install the New APK

Вариант 2:

Примечание: эта опция применима только в том случае, если у вас есть доступ как к старым, так и к новым системам, через которые производится сборка Apk соответственно.

если вы не хотите удалять APk или его не разрешено, вы можете получить ключ отладки, System-A и ту же Debug to System-B

шаги по заполнению формы ключа отладки "Система-А"

Зайдите в Терминал, введите

./gradlew signingReport

вы узнаете свои результаты, как показано ниже

Variant: debug Config:
debug Store: /home/user/debug.keystore
Alias: AndroidDebugKey
MD5: CS:7B:E3:51:C5:2E:36:AA:3F:66:BA:ED:40:DB:86:25
SHA1: 2A:BB:C5:4E:64:4E:FE:12:4C:4E:2B:4E:4E:42:4E:4E:4E:4E:63:83
Valid until: Wednesday, May 6, 2048

получите файл "debug.keystore" из указанного выше места и перенесите его в "System-B", затем перейдите к

    Android studio >> File >> Project Structure >> SigningConfigs
    set the location of the "debug.keystore" to Store File and then ok

Теперь соберите Apk в своей "System-B" и запустите, он будет работать

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

Я закончил тем, что сделал:

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

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

3) Удалить приложение из диспетчера устройств

4) Запустите мой проект снова

5) все работает

Надеюсь, это поможет кому-то

Я просто потратил час, пытаясь отладить это, а затем понял, что я подключен к своему эмулятору, а не к телефону. Поэтому, несмотря на то, что я успешно удалил приложение на своем телефоне, оно все равно не работало. Глупая ошибка, но может это кому-то поможет.

C:\android-sdk\platform-tools\adb.exe: сбой команды с кодом выхода 1

Вывод ошибки: adb: не удалось установить app \ platform \android\app\build\output \apk\debug\app-debug.apk: Ошибка [INSTALL_FAILED_UPDATE_INCOMPATIBLE: пакет com.example.app1 подписи не соответствуют ранее установленной версии; не обращая внимания!]

Решение:

У вас уже есть приложение app1 установлен на телефоне (в основном загрузка с игровой консоли или изменение ключа загрузки)
Удалите приложение.

Больше деталей:

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

При удалении приложения не существует версии приложения Play Store, поэтому при установке новой версии на телефон происходит несоответствие.

Надеюсь, это поможет.

В моем случае я получаю эту ошибку, но приложение не отображается в эмуляторе. В этом случае попробуйте удалить apk с помощьюadb command

      adb uninstall <package-name>

В телефонах Samsung Galaxy есть функция, известная как " Удаление защищенных папок приложения из этого решенного". Проблема для меня.

также adb uninstall packagename не может удалить приложение из безопасной папки.

Вы должны подписать свое приложение, а затем запустить его!

Если вы готовите новое обновление для своего приложения, продолжить работу не проблема. В конце концов, перед выпуском подготовленной версии, когда вы подпишете приложение, проблема будет решена, и у пользователей не будет проблем с установкой вашего приложения.

Я получил ту же проблему и сделал следующее, чтобы исправить это.

  1. Настройки> Хранение> Очистить кэшированные данные
  2. Настройки> Приложения> Удалить показанные там приложения. Я удалил свои приложения, но он показывал там.
  3. Перезагрузите, а затем все прошло нормально.
  1. Зайдите в Настройки / Приложения / Поиск вашего приложения и удалите...
  2. открыть командную строку и "удалить adb"

Это сработало для меня

В моем случае я установил приложение из Playstore и после того, как я пытаюсь запустить его из Eclipse или Android Studio, чтобы он попытался установить снова на тот APK, который не позволяет.

Итак, прежде всего вы должны удалить этот Siged APK и после этого вы должны попробовать.

Спасибо.

Зайдите в Настройка / Приложения / Поиск вашего приложения и удалите...

Это сработало для меня

Для пользователей MIUI, кроме обычной опции отладки USB, обязательно включите следующие параметры:

Установить через USB
Отладка по USB (настройки безопасности)

затем примите приглашение при повторной установке приложения.

Это случилось со мной, когда я установил сборку с помощью Instant Run и удалил ее из Google Play. По какой-то причине данные из Instant Run все еще находятся на устройстве и не могут снова установить / удалить приложение.

Единственный способ это исправить: - отключить Instant Run в Android Studio - установить из Android Studio (это должно работать только отсюда) - удалить приложение

теперь он должен быть чистым для установки из Google Play или ADB.

Я не вижу, чтобы кто-то упоминал мой случай, поэтому позвольте мне добавить его - это происходит, когда вы создаете приложение в одном режиме (например, Dev), а затем пытаетесь переопределить его в другом режиме (например, Production).

Решение такое же, как и для других случаев - удалите приложение на устройстве / симуляторе и запустите снова.

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

Чтобы узнать, как передать debug.keystore, который требуется, чтобы вы не получали сообщение "На устройстве уже есть приложение с тем же приложением, но с другой подписью. Чтобы продолжить, вам придется удалить существующее приложение". (и потеряете свои данные). См. Раздел Обновление приложения на другом компьютере с тем же debug.keystore в android.

Если в вашем файле манифеста есть эта строка -

андроид:sharedUserId="android.uid.system"

вызывает эту ошибку! просто прокомментируйте эту строку, и вы готовы!

Это произошло, если вы соберете свой apk с другого компьютера и обновите его с другого компьютера.

Ты просто бежишь adb uninstall {{package_name}}. Вот и все. Теперь вы попробуете сборку.