Приложение Android не устанавливается. Уже установлен существующий пакет с таким же именем и конфликтующей подписью

131

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

Android App Not Install.

An existing package by the same name with a conflicting signature is already installed

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

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

Из предложения в: существующий пакет с тем же именем с подтверждающей подписью уже установлен. Я попытался запустить эмулятор как в режиме отладки, так и в обычном режиме ... ни один из них не работал.

Есть мысли о том, что мне не хватает?

Джеймс Оравек
источник
1
используйте ту же подпись для подписи apk перед установкой
Praveen Sharma
Эта проблема возникает из-за несоответствия подписи или файла хранилища ключей. Найдите ссылку для решения: readyandroid.wordpress.com/…
Готовый Android

Ответы:

97

Проблема заключается в ключах, которые использовались для подписи APK-файлов, по умолчанию, если вы запускаете непосредственно из своей среды IDE и открываете свой эмулятор, APK, установленный в эмуляторе, подписывается вашим отладочным ключом (обычно устанавливается в ~ / .android /debug.keystore), поэтому, если предыдущий APK был подписан другим ключом, отличным от того, который вы используете в настоящее время, вы всегда будете получать конфликт подписей, чтобы исправить это, убедитесь, что вы используете тот же ключ для подписи оба APK, даже если предыдущий APK был подписан отладочным ключом из другого SDK, ключи определенно будут разными.

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

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

С уважением!

Мартин Казарес
источник
Я собираюсь подписать apk без разработчика и вручную загрузить / установить внутри эмулятора. Затем эмулятор должен загрузить другой APK, не подписанный разработчиками, и попытаться выполнить обновление. Если это сработает, я приму ваш ответ. Спасибо
Джеймс Оравек
@MartinCazares есть ли способ получить ключ apk? чтобы я не потерял данные своего приложения?
heisenberg
Ну, если бы вы установили приложение, у вас должен быть ключ, иначе как бы вы подписали apk? Если предыдущий apk был создан не вами, вам необходимо попросить разработчика этого apk получить ключ, кроме того, что нет никакого способа получить ключ, который использовался для подписи apk ...
Мартин Казарес,
Большое спасибо за это! Вы спасли мне день и мою команду! Ха-ха
perozzo
1
У меня есть приложение в LIVE в игровом магазине, теперь я продолжал устанавливать это приложение на тестовом устройстве, и теперь для обновления более новой версии приложения я обновляю «versionno» и «versionname» в файле app build.gradle. Теперь я сделал сборку релиза с подписанным ключом, а теперь, когда я пытаюсь установить эту сборку из-за ошибки ::: Уже установлен существующий пакет с тем же именем с конфликтующей подписью. И тоже не устанавливается. Пожалуйста, помогите.
Tarit Ray
195

У меня было такое же сообщение об ошибке, но эти ответы не помогли. На Nexus 7 4.3 я использовал пользователя, который НЕ был владельцем. Я удалил старую версию, но продолжал получать то же сообщение.

Решение: мне пришлось войти в систему как владелец и перейти в «Настройки» -> «Приложения», а затем перейти на вкладку «Все». Прокрутите вниз до самого конца списка, где старые версии указаны с пометкой «не установлены». Выберите его, нажмите кнопку «Настройки» в правом верхнем углу и, наконец, «удалить для всех пользователей».

Αλέκος
источник
2
Мне пришлось провести пальцем от «Загружено» к списку «Все», чтобы найти его в списке приложений.
ShawnFeatherly 03
1
Как вы уже упоминали, не забудьте прокрутить страницу до конца - «неустановленные» приложения не перечислены в алфавитном порядке.
jmcmann
3
СПАСИБО!!! Это тоже было моей проблемой после того, как я одолжил свой тестовый Nexus 7 другу. Думал, что мои ключи повреждены ... Я удалил этого пользователя, чтобы избежать путаницы в будущем.
mm2001
1
Сэкономил мое время. Престижность.
Пиюш Патель
2
Спасибо. Мне пришлось войти в систему для всех пользователей и удалить 1 к 1.
Рикардо
8
 Go to Settings > Apps, find and open the app info. Then, open the overflow menu (3 vertical dots), and choose Uninstall for all users.

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

Перейдите в «Настройки»> «Приложения», найдите и откройте информацию о приложении. Затем откройте дополнительное меню (3 вертикальные точки) и выберите «Удалить» для всех пользователей.

Кешав Гера
источник
Это мне помогло - спасибо. По какой-то причине у меня появилось две версии моего приложения, даже после того, как я удалил его через домашний экран.
Йоро Тенев
Спасибо, Джоро Тенев, голосующий за меня
Кешав Гера
6

Если вы не хотите возиться с файлом хранилища ключей, просто удалите пакет полностью для всех пользователей.

Подключите ваше устройство к Mac / ПК и запустите adb uninstall <package>

Работал у меня.

Ссылка: /android/92025/how-to-completely-uninstall-an-app-on-android-lollipop

Avijit
источник
5

Есть разница между подписанными и неподписанными файлами APK. Скорее всего, раньше у вас там был неподписанный. Вам просто нужно удалить неподписанное перед установкой подписанной версии. Как это можно сделать, зависит от конкретной версии, но в целом перейдите на эмулятор в настройки-> приложение, нажмите и удерживайте свое приложение и удалите / удалите / удалите его.

PearsonArtPhoto
источник
Я сделаю неподписанный apk и загрузю неподписанный apk и посмотрю, решит ли это его, если да, то я могу протестировать подписанные apks с помощью оборудования. Я приму ответ, если это так.
Джеймс Оравец
Я пытаюсь выполнить обновление из своей программы, поэтому удаление / установка вручную не сработает.
Джеймс Оравек
Когда я установил неподписанное приложение, я просто получаю app not installed. Я проверил настройки эмулятора, и он Allow installation of apps from unknown sourcesпроверил. Так что, похоже, это не решение.
Джеймс Оравец
голосование за предложения. Думаю, это помогло нам прийти к окончательному решению. Спасибо!
Джеймс Оравец
5

Если вы используете отладочный apk, ключ, который используется для его подписи, находится в

C:\Users\<user>\.android\debug.keystore

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

Сантьяго
источник
Большое спасибо, Сантьяго, в прошлый день я сменил жесткий диск моей машины с механического на твердотельный, поэтому мне нужно обновить Windows, я столкнулся с той же проблемой, затем я скопировал файл debug.keystore из предыдущей папки Windows в новую в папке Windows проблема решена :)
Арслан Сохаил
Спасибо за ответ, потому что он действительно решил мою проблему, я программирую с другом, и у нас часто возникала эта проблема, теперь, когда мы делимся ключом отладки, все в порядке.
Густаво Магальяйнс
5

Если приведенные выше решения не помогли вам, возможно, вам нужно сделать следующее:

1) установка приложения из Appstore.
2) обновление его подписью APK с той же обновленной версией пакета.

Так что в основном есть два типа APK.

1) вы загрузили в игровой магазин, известный как оригинальный APK.
2) скачать из игрового магазина, известного как производный APK.

В этом случае в основном вы загружаете производный APK и обновляете его исходным APK.

Чтобы он работал нормально, загрузите новый подписанный выпущенный APK во внутреннем тестовом режиме в Google Play Store и загрузите производный APK, чтобы проверить сценарий обновления.

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

Вахаб Хан Джадон
источник
2

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

Мартин Кубек
источник
Очень похоже на популярный ответ stackoverflow.com/a/20084044/4136325 выше, вам не кажется?
Thomas Weller
1
да, это уловка - удаление приложения для всех пользователей
Мартин Коубек
1

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

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

FunkSoulBrother
источник
1

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

Сначала получите имя пакета приложения, например «com.xxx.app», вы можете использовать Root Explorer и найти его в файле манифеста (RE может декодировать файл). то вы можете использовать этот скрипт для его удаления:

adb shell pm uninstall com.xxx.app // replace to package name that you want to remove
twiceYuan
источник
1

Та же ошибка пакета:

  1. Создайте новый пакет в своем приложении с другим именем.
  2. Скопируйте и вставьте все файлы из старого пакета в новый пакет.
  3. Сохранить код.
  4. Удалите старый пакет и очистите и перестройте проект.
VIJAY RAVAL
источник
1. Очень 2. Кратко 3. Можно 4. Использовать 5. Объяснение.
Юннош
1

введите описание изображения здесьМне пришлось войти в систему как владелец и перейти в «Настройки» -> «Приложения», а затем перейти на вкладку «Все». Прокрутите вниз до самого конца списка, где старые версии указаны с пометкой «не установлены». Выберите его, нажмите кнопку «Настройки» в правом верхнем углу и, наконец, «удалить для всех пользователей».

Ашиш Кумар
источник
У меня это сработало, но ... теперь при загрузке с моего сайта приложение не загружается (по крайней мере, в папку загрузки). Об ошибках не сообщалось. Просто не бывает. Когда я подключаю телефон к компьютеру, я могу скопировать APK на телефон и установить его без каких-либо ошибок.
Рон
0

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

"Андроид: sharedUserId"

Пожалуйста, проверьте это также.

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

Паван Махешвари
источник
0

Я попробовал все вышеперечисленное, и это не сработало.

Я обнаружил, что, несмотря на удаление приложения, новая версия приложения по-прежнему выдает ту же ошибку.

Вот что решило это: перейдите в Настройки -> Общие -> Диспетчер приложений -> выберите свое приложение -> нажмите на три точки вверху -> удалить для всех пользователей.

Как только вы это сделаете, он будет фактически удален и позволит установить вашу новую версию.

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

FelixFelicis
источник