Не вдається встановити підписаний apk на пристрій вручну, сталася помилка "Додаток не встановлено"


107

Я хотів би опублікувати свою програму в GooglePlay, але спочатку я хотів би зробити останнє тестування з підписаним apk, щоб переконатися, що всі використовувані ключі API працюють коректно з версією випуску (GMaps, Facebook тощо)

Тому я щойно зробив підписану версію свого додатка за допомогою нашого ключа випуску, і коли я намагаюся встановити додаток на пристрій, у мене з’явилася помилка:

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

Я спробував скопіювати apk на пристрій та встановити його за допомогою програми встановлення apk.

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

Ось етапи процедури:

Я вибираю ключ випуску , набираю пароль.

Ось етапи процедури:

Я вибираю тип збірки випуску замість налагодження

Я вибираю тип збірки випуску замість налагодження

На всякий випадок, коли я також визначив у файлі gradle ключі для підписання, але я мушу визнати, що не знаю, чи потрібно.

На всякий випадок, коли я також визначив у файлі gradle ключі для підписання, але я мушу визнати, що не знаю, чи потрібно.

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

Будь ласка, допоможіть, якщо можете.


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

Я зіткнувся з тією ж проблемою. Що було справжньою причиною? Ви це дізналися? @Adam Varhegyi
Rohit Singh

@RohitSingh Відповідь нижче, lol.
Адам Варгегій

Я маю на увазі додаток не було видалено повністю, навіть не видалено? Або справа лише в Android 5.0 (або навіть вище).
Рохіт Сінгх

1
@RohitSingh Моя проблема полягала саме в тому, що відповідь не відповідає. Додаток було встановлено для іншого користувача на телефоні, і я не бачив його з іншим користувачем. Тож мені довелося видалити його для "Усі користувачі"
Адам Варгегій

Відповіді:


81

Можливо, ви використовуєте пристрій Android 5.0 або вище.

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

Перевірте моє рішення із посилання нижче.

Посилання 1

Сподіваюся, це допоможе вам.


Як чорт міг зробити це таким чином. Робочий btw дякую.
Адам Вархегій

2
Хоча це посилання може відповісти на питання, краще включити сюди суттєві частини відповіді та надати посилання для довідки. Відповіді лише на посилання можуть стати недійсними, якщо пов’язана сторінка зміниться.
SOFe

Людина дуже дякую, ця помилка зайняла у мене тиждень, щоб розібратися
Дієго Вініцій

Радий, допомогли тобі !! @ DiegoVinícius
Swaminathan

66

Для поточного Updated Android Studio 2.3 користувачів ця відповідь призначена для вас, оскільки навряд чи люди використовують затемнення для розробки Android, оскільки Android-студія має величезний прогрес.

Отже, дотримуйтесь цього способу створення свого Signed apkфайлу.

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

14
Вибір підпису V1 зробив це
Meanman

ти врятував мою багато часу
цікавоРозум

Працюй для мене. Економити час . Дякую
YeeKhin

5
Перевірка обох V1& V2було рішення!
Алекс Джоліг

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

51

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


4
Це було саме моє питання. залишається питання, чому ми також повинні позначати V1 (підпис jar)? і як Google очікує, що ми це дізнаємося?
A.Alqadomi

Це не є обов'язковим. Потрібно встановити БОТИ цих прапорців, якщо це можливо, але якщо новий механізм підписання V2 створює проблеми, ви можете просто перевірити обидва, якщо у вас виникли проблеми.
Шубхамхакз

43

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

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

до цього все було нормально, якщо я вибрав "ВСТАНОВИТИ БУДЬ-ЯКИЙ ШЛЯХ", але що сталося, якщо я видалив додаток і захотів його перевстановити (можливий сценарій), сталося наступне:

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

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

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

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


Це рішення працює для мене. Ще одна зміна від Google +1
готовий Android

Ти врятував мені життя!
akcoban

Скажіть, будь ласка, чому це відбувається? Що я роблю неправильно, що призводить до цього виправлення?
sparkhead95

16

"Додаток не встановлено" відображається, коли додаток із тим самим пакетом уже встановлено в одному пристрої. просто видаліть першу програму, яку ви використовували для тестування, перш ніж зробити її для підписаного apk. Це спрацює. ура!


8
Так, я знаю, але він не встановлений раніше.
Адам Вархегій

6
Як я можу встановити apk з більш високою версією, не видаляючи поточну програму?
користувач7856586

12

Виберіть обидві версії підпису v1 та v2, щоб вирішити проблему

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

v1 схема

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

Схема V2

підписи v1 не захищають деякі частини APK, наприклад метадані ZIP. Верифікатору APK потрібно обробити безліч недовірених (ще не перевірених) структур даних, а потім відкинути дані, не охоплені підписами. Це пропонує значну поверхню атаки. Крім того, верифікатор APK повинен скасувати всі стислі записи, забираючи більше часу та пам'яті. Для вирішення цих проблем Android 7.0 представив схему APK Signature v2

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

Рекомендується використовувати схему APK Signature v2, але це не є обов’язковим. будь ласка, ознайомтеся з деталями


10

В Android Studio 3.0 і вище

Як описано тут

Примітка. Кнопка "Виконати" створює APK з testOnly = "true", це означає, що APK можна встановити лише через adb (який використовує Android Studio). Якщо ви хочете налагоджувану APK, яку люди можуть встановити без adb, виберіть варіант налагодження та натисніть "Створити пакет" / APK (ів)> Створити APK (и).

Додати тег програми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.In вище ви можете встановити просто використовувати це під час створення apk введіть тут опис зображення...


1
чому ця дублююча відповідь?
sziraqui

@sziraqui: Subhankar soni не згадав, чому "Неможливо встановити підписаний apk на пристрій вручну, отримала помилку" App не встановлено ". Я зіткнувся з тією ж проблемою, що стосується версії Os, як я вже згадував вище, тому для кращого розуміння я згадав це. у моїй відповіді нічого поганого. Для Android версії <= 5,0 ви зможете встановити один і той же apk, не ставлячи прапорці обох версій підписів.
Amit raj

Ваша відповідь - це лише додавання ще однієї точки до оригінальної відповіді, тому це мав бути коментарем. Якщо ви публікуєте це як відповідь, вам слід додати якесь цитування, що підтверджує вашу заяву на android 5.0. Що робити, якщо ваша проблема була насправді пов'язана з ідеєю Android, а не версією Android?
sziraqui

Дякую, малюнок у відповіді дав мені думку спробувати як підписи V1, так і V2. Раніше я їхав лише з V1
jasxir

6

Тут я вирішив це питання

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

Щоб побачити програму, перейдіть до телефону НАСТРОЙКИ -> APPS . Там ви можете побачити додаток, але всередині цього кнопка UNINSTALL може бути відключена. натисніть кнопку переповнення меню, щоб побачити Видалення для всіх користувачів .

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

adb uninstall package name

На додаток до цього, якщо ваш мобільний підтримує декілька користувачів, то перевірте, чи не встановлено відповідний додаток для інших користувачів. Якщо він встановлений для інших, то спочатку видаліть попередню програму та спробуйте ще раз


4

Це досить старе питання, але моїм рішенням було змінити versionCode (збільшити) в build.gradle



4

minifyEnabled false

це єдине, що працювало для мене після 3-х днів досліджень на всіх форумах!


1
Це здається лише повторенням цієї існуючої відповіді .
Панг

З доданим коментарем.
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 випуску та ключа випуску та додавання інформації до ступеня програми. Ура!


$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.