Невозможно установить подписанный 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его используют.
Crime_Master_GoGo
источник
14
Выбор подписи V1 сделал это
Meanman
Вы сэкономили мне много времени
curiousMind 08
Работай на меня. Экономьте время. Спасибо
YeeKhin
6
Проверка обоих V1& V2была решением!
Alex Jolig
1
Проверка V1 решила проблему для меня. Раньше проверялся только V2.
BluJ IT
52

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

Shubhamhackz
источник
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

mateusz-dot
источник
4

Перейти к Build.Gradle (модуль: приложение)

используйте это - minifyEnabled false

Абхинав Пандей
источник
4

minifyEnabled false

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

Toto1
источник
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.

HB.
источник
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. Ура!

Treewallie
источник
$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. и он не полный.

Макаранд
источник