Невозможно установить подписанный 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.