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


94

Це мій проект: https://github.com/kenpeter/my_hak_news , який є прямою копією https://github.com/grigio/HAgnostic-News .

Клон Git 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.
Роман

Я зіткнувся з цією проблемою, оскільки з якихось причин деякі раніше видалені програми, де в цьому "не встановлено для цього користувача". Але у мене на телефоні лише один користувач. Це дивно
Ремі Русселет

80

Я також зіткнувся з цією проблемою у своєму проекті.

Це допомогло мені, тому, сподіваюся, допоможе комусь іншому:

adb uninstall "com.domain.yourapp"

Рішення звідси.


Правильна відповідь, +1 за збереження мого дня :)
Saeed,

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, а в розділі «Шлях до магазину ключів» ', натисніть' Вибрати існуючий ... '
ЯК

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 хвилин на це сам.)


1
Це було моє питання. У мене був телефон, підключений до комп’ютера для зарядки, і я намагався запустити емулятор.
user3486427

3

Я отримав ту ж помилку. Я видалив програму на своєму віртуальному пристрої та повторив команду: 'response-native run-android'.


1

У мене така сама проблема, вона добре працювала в AVD, але в моєму телефоні не все було гаразд. Я видалив програму на телефоні, тоді вона працює нормально.


1

Ця помилка трапилася зі мною, коли попередня збірка мого симулятора / телефону була завантажена з різними обліковими даними. Що мені потрібно було запустити:

adb uninstall com.exampleappname

Після того, як я це зробив, мені вдалося повторити збірку та сформувати файл .apk.


0

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

У мене також з’явилася ця проблема, коли вже встановлений додаток ionic (те саме ім’я пакета) видалявся з мого телефону після того, як він працював ідеально.


0

У мене виникла ця проблема на пристрої Samsung. Видалення програми дало таке саме повідомлення. Проблема полягала в тому, що додаток також було встановлено в області "Захищена папка" телефону. Варто перевірити, чи це ваш сценарій.


0

Зайдіть в android studio -> AVD manager -> Виберіть свій AVD і видаліть дані користувача

Не потрібно перевстановлювати весь AVD.


0

вам потрібно повністю видалити пристрої LG за допомогою cmd adb uninstall packageName


вони відповідають на це питання 4 роки тому тим, що ви пропонуєте
Гонсало Гарсія,

0

Це трапилося зі мною у проекті React Native, коли я перейменовував ідентифікатор набору програм, і він зіткнувся з іншим ідентифікатором набору, який я вже використовував раніше. Я виправив це, виконавши перевстановлення:

  1. Знайдіть програму на головному екрані симулятора, потім натисніть і утримуйте її піктограму, а потім натисніть App info, а потім виберіть «ВИДАЛИТИ».

  2. Виконати react-native run android.


0

Це відбувається через наявність попередньої версії Програми, яка не встановлена ​​на пристрої, але її дані містяться в пам'яті пристрою. Тож не вдається оновити дані видалених програм на пристрої

Спробуйте це :

Перейдіть до Налаштування пристрою ==> Програми (Усі програми) ==> шукайте свою програму АБО шукайте « клієнт » ==> На екрані інформації про програму натисніть опцію потрійних крапок у верхньому правому куті ==> виберіть « Видалити для всіх користувачів '==> з'явиться підказка, виберіть' OK '

Це працює для мене щоразу, коли виникає ця помилка


0

У моєму випадку проблема полягала в тому, що я встановив програму з назвою пакета, скажімо com.example.package, використовуючи на своєму пристрої Android studio. Я створив ще одну програму з такою ж назвою пакету і намагався встановити її на своєму пристрої. Ось що спричинило проблему. Тож просто перевірте на своєму пристрої, чи вже існує інший додаток з такою ж назвою пакету чи ні.


-1

У моєму випадку видалення встановленої програми на підключеному пристрої вирішило мою проблему


-5

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

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