Подписи пакетов не соответствуют ранее установленной версии

93

Это мой проект: https://github.com/kenpeter/my_hak_news , который является прямой копией https://github.com/grigio/HAgnostic-News .

Git clone https://github.com/kenpeter/my_hak_news , затем запуститеreact-native run-android

Получил эту ошибку:

* What went wrong:
Execution failed for task ':app:installDebug'.
> com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Failed to finalize session : INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.hagnosticnews signatures do not match the previously installed version; ignoring!

Соответствующая проблема: https://github.com/grigio/HAgnostic-News/issues/1 , я использую разные способы, но не могу решить эту проблему.

Кенпетер
источник
14
У вас уже установлено приложение на вашем телефоне? Если это так, вам нужно будет удалить его, потому что вы используете подпись, отличную от исходной
maxoumime
Однажды я установил на свой телефон, затем удалил его, нажав и удерживая, а затем перешел на удаление. Все еще не работает.
kenpeter
4
Убедитесь, что приложение было удалено для всех пользователей. Зайдите в Настройки -> Приложения -> HAgnostic News -> Параметры (три точки вверху справа) -> Удалить для всех пользователей
maxoumime
Вот решение!
kenpeter

Ответы:

133

Вам необходимо удалить его, потому что вы используете подпись, отличную от исходной. Если он не работает, это может быть связано с тем, что он все еще установлен для другого пользователя на устройстве. Чтобы полностью удалить, перейдите в Настройки -> Приложения -> HAgnostic News -> Параметры (три точки вверху справа) -> Удалить для всех пользователей.

максоумим
источник
2
Удаление ничего не делает. Эта ошибка возникает даже на устройствах, на которых не установлено приложение.
Игорь Ганапольский
3
@maxoimime, что происходит, когда вы публикуете новую версию в Play Store. Обязательно ли пользователю удалять приложение перед установкой новой версии? Или пользователь сможет без проблем обновить приложение?
Питер
@maxoimime, этот ответ работает. Вы можете удалить свой комментарий. Это вводит в заблуждение для большинства пользователей
AL-zami
1
Для меня это тоже было проблемой. Оказывается, мое приложение также было установлено в защищенной папке Samsung.
Роман
Я столкнулся с этой проблемой, потому что по каким-то причинам некоторые ранее удаленные приложения, которые были «не установлены для этого пользователя». Но у меня на телефоне только один пользователь. Это странно
Реми Русселе
79

Я тоже столкнулся с этой проблемой на своем проекте.

Это помогло мне, так что надеюсь поможет кому-то еще:

adb uninstall "com.domain.yourapp"

Решение здесь.

Жиримертин
источник
Правильный ответ, +1 за спасение моего дня :)
Саид
1
Это правильный ответ, поскольку я уже удалил приложение с телефона для всех пользователей, но продолжал получать ту же ошибку. Спасибо
Тарек К. Аджадж
1
Пользователь Xamarin Forms здесь. Это был ответ для меня. Я удалил приложение с телефона, но этого было недостаточно.
brunner
да, у меня это тоже работает, не отображается в списке приложений!
sl45sms,
Я был настолько уверен, что это правильный ответ, что проголосовал за него еще до того, как попробовал, и, как и ожидалось, он сработал. Благодарность!
Джей Юн
17

Если версия приложения, которую вы установили, не была создана с тем же сертификатом хранилища ключей / подписи, она будет иметь другую подпись. По умолчанию каждая машина для сборки будет иметь другой сертификат отладки, если вы не укажете, как он должен быть подписан в соответствии с документацией Google. , что можно использовать, чтобы гарантировать, что ваше приложение будет построено с одним и тем же ключом отладки независимо от того, на каком компьютере вы создаете приложение на.

Чтобы продолжить установку, вы должны удалить существующую версию и повторить попытку.

Джейк_
источник
14

Это происходит, когда вы установили приложение с разными версиями на свой мобильный телефон / телефон-эмулятор.

Просто удалите существующее приложение, чтобы решить проблему

Мухаммад Ашфак
источник
10

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

В КАЧЕСТВЕ
источник
Я столкнулся с той же проблемой, о которой упоминалось в вопросе. Не могли бы вы сообщить мне, как я могу создать код с более ранним хранилищем ключей / сертификатом? Мой клиент предоставил мне файл хранилища ключей, но я не знаю, как я могу создать свой собственный реагирующий андроид с файлом хранилища ключей, предоставленным моим клиентом.
Юсуф Икбал
Некоторое время не делал Android, но, согласно этому: developer.android.com/studio/publish/app-signing#sign_release , вы должны перейти в Build> Generate Signed Bundle / APK и в разделе 'Key store path 'поле, нажмите кнопку "Выбрать существующий ...
AS
6

com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: не удалось завершить сеанс: INSTALL_FAILED_UPDATE_INCOMPATIBLE: подпись пакета [МОЕ РЕАКТИВНОЕ ИМЯ ПРИЛОЖЕНИЯ ЗДЕСЬ] не соответствует ранее установленной версии; игнорируя!

Я получил эту ошибку при попытке установить приложение React Native для Android на подключенное устройство с помощью этой команды:

react-native run-android --variant=release

Еще у меня на компьютере был запущен эмулятор.

Как только я выйду из эмулятора , эта команда будет выполнена успешно.

Бо Смит
источник
6

Сегодня я столкнулся с той же проблемой на своем устройстве Samsung. В моем конкретном случае приложение НЕ отображалось на телефоне, но оно было УСТАНОВЛЕНО , поэтому я не мог удалить / удалить его. Таким образом, мне пришлось удалить приложение с помощью терминала : $ adb uninstall "com.domain.yourapp" Мое дерево проекта выглядит так (частичный вид):

└── com
    └── gluonapplication
        ├── DrawerManager.java
        ├── StartApplication.java
        └── views
            ├── PrimaryPresenter.java
            ├── PrimaryView.java
            ├── SecondaryPresenter.java
            └── SecondaryView.java

Итак, для меня команда была такой: $ adb uninstall com.gluonapplication Сделав это, я установил приложение через терминал:

$ cd /path/to/apk/
$ adb install -t myAwesomeApp.apk  # -t means test install

Это то, что сработало для меня. Надеюсь, этот ответ будет вам полезен.

Кази Фахим Фархан
источник
5

Если вы пытаетесь установить его в эмуляторе, но у вас есть другой телефон, подключенный к компьютеру через USB, отсоедините кабель USB или отключите отладку USB на физическом устройстве. (Я потратил на это 30 минут.)

Waliurjs
источник
1
Это была моя проблема. Мой телефон был подключен к компьютеру для зарядки, и я пытался запустить эмулятор.
user3486427
3

У меня такая же ошибка. Я удалил приложение на моем виртуальном устройстве и повторно запустил команду: «react-native run-android».

Wiezalditzijn
источник
1

У меня такая же проблема, в AVD все работало хорошо, а в телефоне - не в порядке. Я удалил приложение со своего телефона, оно работает нормально.

Рафаэль Рамон
источник
1

Эта ошибка произошла со мной, когда предыдущая сборка на моем симуляторе / телефоне загружалась с другими учетными данными. Что мне нужно было сделать, так это запустить:

adb uninstall com.exampleappname

Как только я это сделал, я смог повторно запустить сборку и сгенерировать APK.

Ариэль Салем
источник
0

Вам необходимо удалить его, потому что вы используете подпись, отличную от исходной. Если он не работает, это может быть связано с тем, что он все еще установлен для другого пользователя на устройстве. Чтобы полностью удалить, перейдите в Настройки -> Приложения -> (конкретное приложение) -> Параметры (три точки вверху справа) -> Удалить для всех пользователей.

У меня также возникает эта проблема, когда уже установленное ионное приложение (то же имя пакета) удаляется с моего телефона после того, как это работает отлично.

Махендрен
источник
0

У меня была эта проблема на устройстве Samsung. Удаление приложения дало такое же сообщение. Проблема заключалась в том, что приложение также было установлено в области «Защищенная папка» телефона. Стоит проверить, соответствует ли это вашему сценарию.

Элирам
источник
0

Перейдите в студию Android -> Менеджер AVD -> Выберите свой AVD и сотрите данные пользователя

Нет необходимости переустанавливать весь AVD.

mingliang94
источник
0

вам нужно полностью удалить для устройств LG с помощью cmd adb uninstall packageName

v.Vinh
источник
они ответили на этот вопрос 4 года назад тем, что вы предлагаете
Гонсало Гарсия
0

Это случилось со мной в проекте React Native, когда я переименовал идентификатор пакета приложения, и он столкнулся с другим идентификатором пакета, который я уже использовал раньше. Я исправил это, выполнив переустановку:

  1. Найдите приложение на App infoглавном экране симулятора, затем нажмите и удерживайте его значок, нажмите , затем выберите «УДАЛИТЬ».

  2. Выполнить react-native run android.

Джейми Берч
источник
0

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

Попробуй это :

Перейдите в Настройки устройства ==> Приложения (Все приложения) ==> выполните поиск по своему приложению ИЛИ найдите « клиент » ==> На экране информации о приложении нажмите опцию с тремя точками в правом верхнем углу ==> выберите « Удалить для всех пользователей». '==> появится подсказка, выберите " ОК "

У меня работает каждый раз, когда возникает эта ошибка

Харшал Патил
источник
0

В моем случае проблема заключалась в том, что я установил приложение с именем пакета, скажем com.example.package, используя студию Android на моем устройстве. Я создал другое приложение с тем же именем пакета и пытался установить его на свое устройство. Вот что было причиной проблемы. Поэтому просто проверьте на своем устройстве, существует ли уже другое приложение с таким же именем пакета или нет.

ANUJ GUPTA
источник
-1

В моем случае удаление установленного приложения на подключенном устройстве решило мою проблему

Лонг Нгуен
источник
-5

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

Plaimanus Lueondee
источник