Невозможно установить подписанный apk на устройство вручную, появилась ошибка «Приложение не установлено»


108

Я хотел бы опубликовать свое приложение в GooglePlay, но сначала я хотел бы провести последнее тестирование с подписанным apk, чтобы убедиться, что все используемые ключи API работают правильно с версией выпуска (GMaps, Facebook и т. Д.)

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

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

Я попытался скопировать apk на устройство и установить его с помощью установщика apk.

Странно, когда я делаю тот же процесс с ключом подписи отладки, все в порядке, я могу установить и запустить приложение.

Вот шаги процедуры:

Выбираю ключ разблокировки , набираю пароль.

Вот шаги процедуры:

Я выбираю тип сборки выпуска вместо отладки

Я выбираю тип сборки выпуска вместо отладки

На всякий случай я также определил в файле gradle ключи подписи, но должен признать, что не знаю, нужно ли это.

На всякий случай я также определил в файле gradle ключи подписи, но должен признать, что не знаю, нужно ли это.

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

Пожалуйста, помоги, если можешь.


1
Салам. Этот ответ может решить вашу проблему: http://stackoverflow.com/a/42745459/1676736
Sayed Abolfazl Fatemi,

я столкнулся с той же проблемой. В чем была настоящая причина? Вы узнали это? @Adam Varhegyi
Рохит Сингх

@RohitSingh Ответ ниже, лол.
Adam Varhegyi

Я имею в виду, что приложение не было удалено полностью, даже если вы удалили его? Или это дело только Android 5.0 (а то и выше).
Рохит Сингх

1
@RohitSingh Моя проблема была именно такой, как описывается в ответе. Приложение было установлено для другого пользователя на телефоне, и я не видел его с другим пользователем. Поэтому мне пришлось удалить его для «Всех пользователей»
Адам Вархеджи

Ответы:


81

Возможно, вы используете устройство Android 5.0 или более поздней версии.

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

Проверьте мое решение по ссылке ниже.

Ссылка 1

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


Как, черт возьми, они могли сделать это таким образом. Работаю, кстати, спасибо.
Адам Вархеги

2
Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если ссылка на страницу изменится.
SOF

Человек, спасибо тебе огромное, мне потребовалась неделя, чтобы разобраться с этой ошибкой
Диего Винисиус

Рад, помогли !! @ DiegoVinícius
Рагу Сваминатан

66

Для текущих Updated Android Studio 2.3пользователей этот ответ для вас, поскольку в настоящее время люди не используют eclipse для разработки Android, поскольку студия Android имеет огромные успехи.

Итак, следуйте этому способу, чтобы создать свой Signed apkфайл.

  1. Build> Создать Signed apk.
  2. Создать Keystore path.
  3. Положите Password, alias, key password.
  4. Build typeвыберите соответственно (например, для выпуска в игровом магазине release).
  5. Signature Versionвыберите как V1и V2флажки.
  6. Finsih.
  7. Перейдите туда, explorerоткуда вы выбрали apk для хранения, и вы увидите .apkимя вашего файла, как app-release.apkего используют.

14
Выбор подписи V1 сделал это
Meanman

Вы сэкономили мне много времени
curiousMind 08

Работай на меня. Экономьте время. Спасибо
YeeKhin

6
Проверка обоих V1& V2была решением!
Alex Jolig

1
Проверка V1 решила проблему для меня. Раньше проверялся только V2.
BluJ IT

52

выбор версии подписи v1 и v2 решил проблему для меня .... попробуйтевведите описание изображения здесь


4
Это была моя проблема. остается вопрос, почему мы также должны маркировать V1 (подпись jar)? и как Google ожидает, что мы узнаем об этом?
A.Alqadomi

Это не обязательно. Если возможно, вы должны установить ОБЕИХ флажки, но если новый механизм подписи V2 вызывает проблемы, вы можете просто проверить оба флажка, если у вас возникнут проблемы.
Shubhamhackz

43

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

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

до тех пор все было хорошо, если я выбрал «УСТАНОВИТЬ ЛЮБОЙ СПОСОБ», но что произошло, если я удалил приложение и захотел переустановить его (возможный сценарий), произошло следующее:

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

поэтому я решил проблему, отключив защиту от воспроизведения, чего я добился (в Google Play)> Меню> Защита от воспроизведения> Поиск угроз безопасности (отключить).

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

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


Это решение мне подходит. Еще одно изменение от Google +1
готовый Android

Вы спасли мою жизнь!
akcoban

Не могли бы вы рассказать, почему это происходит? Что я делаю неправильно, из-за чего это исправление?
Sparkhead95

16

«Приложение не установлено» отображается, когда приложение с таким же пакетом уже установлено на том же устройстве. просто удалите свое первое приложение, которое вы использовали для тестирования, прежде чем вносить его в подписанный apk. Это сработает. ура!


8
Да, я знаю, но раньше он не устанавливался.
Адам Вархеги

6
Как я могу установить apk с более поздней версией, не удаляя текущее приложение?
user7856586

12

Выберите версию подписи v1 и v2, чтобы решить проблему.

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

схема v1

Файл JAR можно подписать с помощью инструмента jarsigner в командной строке или напрямую через API java.security. Каждая запись файла, включая файлы, не связанные с подписью, в каталоге META-INF, будет подписана, если файл JAR подписан инструментом jarsigner. Для каждой записи файла, подписанной в подписанном JAR-файле, для нее создается отдельная запись манифеста, если она еще не существует в манифесте.

Схема V2

Подписи v1 не защищают некоторые части APK, например метаданные ZIP. Верификатор APK должен обработать множество ненадежных (еще не проверенных) структур данных, а затем отбросить данные, не охваченные подписями. Это предлагает значительную поверхность для атаки. Более того, верификатор APK должен распаковать все сжатые записи, что отнимает больше времени и памяти. Для решения этих проблем в Android 7.0 представлена ​​схема подписи APK v2.

По умолчанию Android Studio 2.2 и подключаемый модуль Android для Gradle 2.2 подписывают ваше приложение, используя как схему подписи APK v2, так и традиционную схему подписи, которая использует подписывание JAR.

Рекомендуется использовать схему подписи APK v2, но это не обязательно. пожалуйста, посмотрите подробности


10

В Android Studio 3.0 и выше

Как описано здесь

Примечание. Кнопка «Выполнить» создает APK с testOnly = "true", что означает, что APK можно установить только через adb (который использует Android Studio). Если вам нужен отлаживаемый APK, который люди могут устанавливать без adb, выберите вариант отладки и нажмите Build Bundle (s) / APK (s)> Build APK (s).

Добавить android:testOnly="false"внутри тега приложения в AndroidManifest.xml

Ссылка: https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html


7

Для меня работает ответ shubham soni, на самом деле это происходит с версией Android> = 5.0. Выше вы можете установить, просто используйте это при создании своего apk введите описание изображения здесь...


1
почему этот повторяющийся ответ?
sziraqui

@sziraqui: Субханкар Сони не упомянул, почему «Невозможно установить подписанный apk на устройство вручную, появилась ошибка« Приложение не установлено ». Я столкнулся с той же проблемой, связанной с версией Os, как я упоминал выше, поэтому для лучшего понимания я упомянул, что. в моем ответе что-то не так?. Для версии Android <= 5.0 вы сможете установить тот же apk, не отмечая флажками обе версии подписи.
Амит радж

Ваш ответ просто добавляет еще один пункт к исходному ответу, так что это должен был быть комментарий. Если вы публикуете это как ответ, вам следует добавить какую-то цитату, подтверждающую ваше утверждение об Android 5.0. Что, если ваша проблема действительно связана с android ide, а не с версией android?
sziraqui

Спасибо, картинка в ответе натолкнула меня на мысль попробовать включить обе подписи V1 и V2. Раньше я работал только с V1
jasxir

6

Здесь я решил эту проблему

Причина этой проблемы в том, что в телефоне уже есть приложение с таким же именем пакета, но вы не можете найти его в меню телефона (U уже выполнил деинсталляцию, но на самом деле оно все еще в вашем телефоне).

Чтобы увидеть ход приложения для телефонов SETTINGS -> APPS . Там вы можете увидеть приложение, но внутри него кнопка УДАЛИТЬ может быть отключена. нажмите кнопку переполнения меню, чтобы увидеть Удалить для всех пользователей .

После удаления для всех пользователей я успешно установил подписанный apk. Вы также можете использовать adb для удаления приложения с телефона.

adb uninstall package name

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


4

Это довольно старый вопрос, но я решил изменить versionCode (увеличить) в build.gradle



4

minifyEnabled false

это единственное, что сработало у меня после 3х дней исследования всего форума!


1
Похоже, это просто повторение существующего ответа .
Pang

С добавленным комментарием.
robinCTS

Другими словами, это должно было быть опубликовано как комментарий к этому ответу , а не как ответ сам по себе.
robinCTS

3

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


1

Это может произойти из-за вашего выбора версии подписи. На некоторых телефонах возникают ошибки установки, если версия подписи была выбрана как V2. Так что если это произойдет, попробуйте выбрать V1, это обязательно сработает.


1

Сегодня я столкнулся с той же проблемой, я вспомнил, что подписал свой apk «новой» подписью Google Play:


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


Убедитесь, что вы подписали свое приложение с помощью подписи Google Play.

Если вы сделали:

  • Установите обновление, загрузив apk в консоль Google (как обычно при обновлении приложения):

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


  • После успешной загрузки откройте Artifact libraryв меню.
  • Вы увидите только что загруженный apk.
  • Нажмите кнопку загрузки и выберите Download derived APK.

Теперь вы можете установить apk.


0

если ваша версия Android Studio больше 3.0

Похоже, мы не можем напрямую использовать apk после запуска на устройстве из папки build -> output-> apk.

После обновления до Android Studio 3.0 вам нужно перейти в Build -> Build Apk (s), затем скопировать apk из build -> output -> apk -> debug

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


Название этого вопроса - "Cannot install signed apk". Вы имеете в виду отладку apk.
KRK

0

Файл> Структура проекта> Варианты сборки> Выбрать выпуск> Убедитесь, что «Конфигурация подписи» не пуста> если он выбран в раскрывающемся окне, $signingConfigs.release

Я сделал это с Android Studio 3.1.4, и это позволило мне создать релиз apk после выполнения всех вышеперечисленных шагов по созданию релиза apk и ключа релиза и добавления информации в приложение gradle. Ура!


$signingConfigs.releaseне доступно, только $signingConfigs.debugдоступно.
KRK

Затем перейдите в Сборка> Создать APK> Выбрать APK и следуйте инструкциям.
Treewallie

0

У меня была такая же проблема в моем приложении для Android. Я просто обновил некоторую библиотеку, а затем создал знак APK. Теперь его работа.


0

Вам не нужно удалять версию Google Play, если для вашего приложения включена функция подписания приложений через Google Play , выполните следующие действия:
1. Создайте подписанную версию своего приложения с помощью ключа выпуска
2. Перейдите в консоль разработчика Google Play
3. Создайте закрытый выпуск (альфа- или бета-выпуск) с новой подписанной версией вашего приложения
4. Теперь вы можете загрузить apk, подписанный функцией подписи приложений в Google Play , выбрать производный APKвведите описание изображения здесь

  1. Установите скачанный производный APK

Причина в том, что подписка на приложение в Google Play подписывает выпускные приложения с разными ключами, если у вас есть приложение, установленное из Play Store, и вы хотите протестировать приложение новой версии (созданное из Android Studio) на своем телефоне, «Приложение не установлено» происходит, поскольку старая версия и новая версия были подписаны двумя разными ключами: одним с подписью приложений через Google Play, а другим - вашим.



0

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


0

В моем случае я пытался протестировать установку подписанного APK, и текущая установленная версия на моем устройстве не была подписана (создание отладочной версии непосредственно из студии Android)


0

Это очевидно, но мне все равно было трудно понять,

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.