«Приложение не установлено» Ошибка на Android


425

У меня есть программа, работающая в эмуляторе Android. Время от времени я создавал подписанный .apk и экспортировал его в свой HTC Desire для тестирования. Все было хорошо.

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

Поскольку я в основном тестировал на эмуляторах и только время от времени экспортировал в реальный телефон, я не уверен, когда это произошло. Какова вероятная причина того, что он не устанавливается на физический телефон, а работает нормально в эмуляторах?

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


5
Когда вы говорите, что удалили существующий .apk, вы имеете в виду, что вы удалили приложение с телефона? Если нет, удалите приложение, прежде чем пытаться установить его снова.
Тельмо Маркес

9
То, что сказал ТомС , беги, adb uninstall your.package.nameа потом adb install /path/to.apk. Я не понимаю, почему это не сработает. Вы что-нибудь изменили в процедуре подписания?
Феликс

2
Вы пытались отладить его непосредственно из Eclipse на устройстве, подключенном к компьютеру, чтобы узнать, говорит ли журнал что-нибудь еще?
Хави

1
Я удалил приложение с помощью опции удаления из диспетчера приложений на телефоне.
Entropy1024

Феликс. Откуда я запускаю эту вещь ADB?
Entropy1024

Ответы:


265

В первую очередь для старых телефонов

Я только столкнулся с App not installedошибкой при попытке установить apk на моем телефоне, который работает на 4.4.2 или KitKat, но мой друг не сталкивался с этой ошибкой на своем телефоне, который работает на 6+. Я попробовал другие решения, такие как удаление старой / отладочной версии приложения, потому что apk был версией выпуска, очистка данных приложения отладки и даже очистка всех моих кэшированных данных. Затем, наконец, я понял, что все, что мне нужно было сделать, это выбрать обе версии подписи при создании моего подписанного apk.

enter image description here

Раньше я только V2 (Full APK Signature)выбирал, но после выбора V1 Jar Signatureя смог успешно установить подписанный APK на моем устройстве 4.4.2. Надеюсь, что это помогает другим!


6
Примите во внимание это решение, когда у вас есть старый телефон! У меня Galaxy S4 mini с Android 4.4.2, и я забыл проверить «подпись V1», чтобы он не мог быть установлен в устройстве. После проверки apk устанавливается как брелок.
Хосе Рамон Гарсия

1
@JoseRamonGarcia Забавно, что у меня точно такая же версия телефона и Android, ха-ха! Рад, что это сработало для вас
Крис Гонг

1
Спасибо! Android Studio должна предоставить больше информации об этом при подписании приложения или сделать более очевидным, что он делает, когда вы не V1 (Jar Signature)
ставите

В моем случае я должен добавить эту конфигурацию в файл манифеста Android: installLocation = "internalOnly"
avinash kumar

1
Первоначально я подписал с v2, когда я столкнулся с проблемой. Тогда я подписался только с v1 и тогда все заработало. Я запускаю SDK23 на моем телефоне.
Янтарная

206

Для меня на Android 9 (API 28) отключение Google Play Protect из приложения Play Store сработало, и я смог избавиться от App not Installedошибки.

Чтобы отключить Google Play Protect. Откройте приложение «Play Store» => нажмите на кнопку «Меню» => выберите опцию «Play Protect» => Отключите опции «Сканировать устройство на наличие угроз безопасности».


4
даже когда я впервые попытался установить свое приложение, Play Protect сказал мне, что он не может проверить, безопасно ли приложение, и я нажал «установить в любом случае», приложение все равно не установилось. это переопределение сработало
user2565663

У меня нет Play Store в эмуляторе Android (API 28).
Джерри Додж

3
Также дело обстоит на Android 8 (только для того, чтобы заполнить заявленный разрыв между 7 и 9).
cleardemon

3
Это отлично работает. Не забудьте вернуть настройки после установки apk.
Рахамат

Большое спасибо, решенные проблемы на моем Xiaomi Redmi 5 Plus
Никола Галлацци

150

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


9
Да, это тот же сертификат. Я думаю, что у меня было это однажды. Я попытался удалить существующее приложение на телефоне, а также попытался установить не подписанную версию. Тем не менее получить то же сообщение об ошибке.
Entropy1024

2
У меня также была та же проблема для этого (предыдущая версия с другим сертификатом) - если быть точным, я неявно установил ее для использования отладчика. Revmoving решил это (не ваш случай, как показано ниже, но стоит зарегистрироваться здесь)
chesterbr

11
Этот пост имеет более 30 ответов. Я рекомендую: всякий раз, когда вы сталкиваетесь с этой проблемой, наблюдайте журналы устройства при установке приложения. используйте adb logcat. Вы узнаете точную причину сбоя установки. Журнал для моей проблемы "Пакет com.companyname.appname подписи не соответствуют ранее установленной версии; игнорирование!"
Маникандан

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

120

Очевидно, есть много причин этой проблемы. Для меня ситуация была такая: я развернул на своем nexus 7 (фактическое устройство) из Android Studio (v1.3.2). Все работало нормально. Затем я создал подписанный apk и загрузил на свой Google Drive. После отключения моего нексуса от usb я зашел в настройки / приложения и удалил свое приложение (App1). Затем я открыл google drive и нажал на мой App1.apk и решил установить его (необходимо убедиться, что вы установили apks в настройках). Тогда я получил страшное сообщение "Приложение не установлено"

Решение для меня: вернитесь в настройки / приложения и прокрутите хотя все приложения и внизу была бледная версия моего приложения App1 (обратите внимание, что оригинальное приложение App1 было вверху в алфавитном порядке, которое было удалено, как указано выше). При нажатии на бледную версию он сказал «Не установлен для этого пользователя». (Я настроил свой нексус, чтобы иметь более одного пользователя). Но в правом верхнем углу есть кнопка с тремя точками . Я нажал на это, и он сказал «Удалить для всех пользователей» . Что я и сделал, и это решило проблему. Теперь я смог нажать на App1.apk, и он установился нормально, без ошибок.


1
Да, у меня были разные причины, и это была одна из них. Спасибо!
Альвеолы

1
имеет ту же проблему. У меня была активирована гостевая учетная запись, и при удалении приложение не удалялось у всех пользователей.
Филипп Лучианенко

2
Это было действительно полезно, и я установил-удалил свое приложение около 20 раз, прежде чем я нашел это. Большое спасибо! :-)
Рахул Арора

3
Если только StackOverflow, позвольте нам проголосовать более одного раза. Это решение помогло мне почти год назад. Я проголосовал и быстро забыл об этом. Была такая же проблема сегодня, и она мне снова помогла. Пытался upvote и StackOverflow сказал, что я уже имел. Ну что ж.
Гленн

2
Спасибо. Я тоже столкнулся с этим вопросом. В первый раз совершенно не очевидно, что удаление приложения происходит только для текущего активного пользователя. Чтобы не заходить в настройки каждый раз, я использую команду adb uninstall your.package.name, которая удаляет все пользователи.
Ксавье

61

Я столкнулся с проблемой, когда я обновляю свой андроид с 2.3.2 до 3.0.1. В этом случае IDE автоматически учитывает следующие моменты.

1.Не удается установить приложение с android: testOnly = "true" обычными способами, например, из файлового менеджера Android или из загрузки с веб-сайта.

2. Android Studio устанавливает Android: testOnly = "true" на APK, которые запускаются из

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

если вы отправили этот apk-копию из папки build out и debug, он никогда не будет установлен на устройстве.

Решение : перейти Build ---> Build APK (s) ---> скопируйте общий файл apk в вашу команду

тогда ваша проблема решится.


1
Вы сохранили мою работу! Спасибо!
img.simone

1
О Боже, это заняло у меня 3 часа ..
Cuddlemeister

Оно работает! Спасибо!
Питер

1
Это Это это прямо здесь ответ для меня. Настолько досадно, что об этой простой вещи не было нигде не сообщено в программе или через сообщения об ошибках на устройстве. Спасибо чувак!
LFMekz

29

Я столкнулся с той же проблемой. Проблема была в том, что основное действие в моем файле AndroidManifest.xml было написано дважды. Я удалил дубликат.


Спасибо за подсказку! В моем случае android:exportedбыло установлено значение false для активности запуска
ildar ishalin

21

Это может произойти, если ваш MainActivity дважды объявлен в вашем AndroidManifest.xml.

Другая возможная причина: вы изменили активность запуска. Подсказка: никогда не делайте этого с уже опубликованными приложениями! Причины обсуждаются в блоге разработчиков Android .


4
+1 android:nameатрибут любого Activity, Service,BroadcastReceiver и так далее не может быть изменен в файле манифеста. Хотя это, кажется, частный идентификатор в вашем приложении, это публичный API.
caw

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

2
Вы можете использовать тег <activity-alias>, чтобы справиться с этим!
thiagolr


14

У меня была такая же проблема, и вот как ее решить: перейдите в файл Manifest и убедитесь, что для атрибутов «Debuggable» и «Test Only» установлено значение false. У меня это сработало :)


2
Не уверен, что вы подразумеваете под «Test Only», но установка отладки на true и подписание apk сработали для меня!
ingh.am

не работал для меня Я использовал:android:testOnly="false" android:debuggable="false"
Франциско Корралес Моралес

могли бы вы объяснить? У меня нет ни одного атрибута вообще, не установлено истина и не ложь, просто нет. Как выглядит линия?
Пашуте

14

Для тех, кто использует Android Studio 3.

Ответ Сурьянараяна Редди является верным, хотя в нем не указаны шаги для его решения, следовательно.

в вашем AndroidManifest.xml под тегом приложения добавьте testOnly="false" и android:debuggable="true"вот так:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    android:testOnly="false"
    android:debuggable="true"
    >

Отредактируйте
затем в строке меню AndroidStudio Построить> Построить APK (s)


Спасибо! android:debuggable="true"приводит к Error: Avoid hardcoding the debug mode; leaving it out allows debug and release builds to automatically assign one [HardcodedDebugMode]. Я пробовал android:testOnly="false", как Build > Build Bundl(s) / APK(s) > Build APK(s)и Build > Generate SignedBundle APK...с подписью версий v1, v2 (как на верхнем скриншоте). Пришлось удалить предыдущее приложение, а затем установить новое.
CoolMind

Недавно столкнулся с этой проблемой. Просто добавили android: testOnly = "false" и Build -> Build Apks и готово. Все отсортировано. Спасибо! Нет необходимости добавлять любое другое свойство android, например android: debuggable = "true".
androidStud

12

Я знаю, что это старый пост, но для новых пользователей может быть полезным. У меня была та же проблема: мое приложение работало нормально при отладке. Когда я подписал APK, я получил то же сообщение: «Приложение не установлено».

Я исправил это, удалив мой JDK (я использовал jdk-6u14-windows-x64) и установил новый (jdk-6u29-windows-x64). После экспорта и подписи АПК снова все было ок!

Возобновление, моя проблема была в версии JAVA. Благодарю Оракула !!


Это исправило это для меня ... больше информации stackoverflow.com/questions/6282169/…
Грег Эннис

2
Это невероятно странно. Это было для эмулятора или устройства?
Джо Планте

12

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


2
В диспетчере приложений выберите приложение (которое будет отображаться, но будет отображаться как удаленное), выберите «Дополнительно» и появится параметр «Удалить для всех пользователей».
Кейси Мюррей

9

Моя проблема была: я использовал Debug Apk, который был сгенерирован во время выполнения команды Run из Android Studio

Решение заключалось в следующем: вместо использования этого файла очистите проект и нажмите «Создать»> «Создать APK» из Android Studio. Затем вы можете использовать сгенерированный APK из обычной папки (app / build / output / apk / debug /)

Файл, который был сгенерирован таким образом, установлен без проблем.


7

Если приложение не устанавливается, удалите файл .android_secure/smdl2tmpl.asec с SD-карты.

Если папка .android_secureв файловом менеджере пуста, удалите ее с ПК.


5

В конце концов я обнаружил, что ни одно приложение не было успешно установлено, не только мое. Я установил Установочное приложение по умолчанию с SD-карты на Автоматический. Это исправило это.


1
Как тебе это сделать? Я вообще не нахожу эту опцию на своем устройстве
SoulRayder

Huawei P8 Lite, Android 6.0, имеет только: Advanced / Mem & storage / расположение по умолчанию: внутренняя / SDCard. Это не помогло.
Кай

5

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


5

Я также решил эту проблему,

Проблема заключалась в том, что я дважды объявлял свою основную деятельность: «В качестве первой загружаемой операции» и определял для нее также фильтр намерений. И еще раз под ней я снова объявлял ее.

Просто убедитесь, что вы не объявляете свою деятельность дважды.


Если вы дважды объявите свою активность в Manifest.xmlфайле, появится ошибка компиляции, если у вас нет одинаковых действий с одинаковым именем, но в разных пакетах, НО это не работает со мной, так как я все проверил.
Blueware

5

создать файл хранилища ключей через командную строку

keytool -genkey -alias key_file_name.keystore -keyalg RSA -validity 1000000000000000 -keystore key_file_name.keystore

Экспортируйте apk через Eclipse, щелкните правой кнопкой мыши на Android-проекте Android Tools> Export Signed Application Package , затем укажите местоположение хранилища ключей и пароль.

это будет ящик подписанный apk в то же время apk будет zipaligned. И устанавливается.

Если вы пройдете через командную строку для всех, иногда вы можете столкнуться с ошибкой «Приложение не установлено». (Ошибка не установленного приложения может возникнуть не только при использовании командной строки. Это может быть и по другим причинам)


4

У меня была та же проблема, то есть приложение показывалось как установленное, но не запускалось при нажатии значка. После некоторого удара головой я обнаружил, что тупо поместил 'android: exported = "false" для своей основной активности запуска в файле AndroidManifest .... Как только я удалил его, приложение запустилось нормально ..


4

Моя проблема была похожа на проблему @Lunatikzx. Из-за неправильного тега разрешения, который был записан как атрибут приложения:

<application
    android:permission="android.permission.WRITE_EXTERNAL_STORAGE"
    android:label="@string/app_name"
    android:icon="@drawable/ic_launcher"
    android:testOnly="false"
    android:debuggable="true">

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

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

4

Загрузка приложений отладки для тестирования на физическом телефоне работала надежно до тех пор, пока я не обновил телефон с Android Pie до Android 10. После этого каждый раз, когда я пытался загрузить приложение, возникала ошибка «Приложение не установлено».

На основании предупреждения в моем AndroidManifest.xml я изменил с ...

<application
    android:name=".App"
    android:allowBackup="true" ... />

чтобы ...

<application
    android:name=".App"
    android:allowBackup="false" ... />

После этого я смог загрузить приложение - один раз. Затем я снова столкнулся с той же ошибкой «Приложение не установлено». Изменяя allowBackupназадtrue , он снова работает (по крайней мере , один раз).

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


Я только попытался установить android:allowBackup="true"к android:allowBackup="false"и все еще не везет.
KRK

3

Проверьте с версией Android.

Если вы устанавливаете нерыночные приложения и несовместимую версию, вы получите эту ошибку.

Пример: приложение нацелено на 2.3.4 Ваше устройство 2.2, тогда вы получите эту ошибку.


где в файлах конфигурации Gradle я вижу целевую версию Android? Я не вижу его build.gradleни в файле манифеста Android. Если compileSdkVersion(значение 23) или minSdkVersion(16) или targetSdkVersion(22) не указывают каким-либо образом на желаемую настройку. Моя галактика работает под управлением Android 7.0 (и просит обновить, но я пока не разрешаю). Я не использую android studio для создания своего собственного приложения, а скорееgradlew assembleRelease
pashute

3

Ошибка «Приложение не установлено» также может возникнуть, если приложение было установлено на SD-карту или перенесено на нее, а затем был подключен кабель USB, что приводит к отключению SD-карты.

Выключение USB-накопителя или перемещение приложения обратно во внутреннее хранилище решит проблему в этом случае.


3

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


2
Это будет работать, но не лучшее решение, так как в итоге вы получите миллионы установленных приложений. Смотрите некоторые другие ответы выше.
Астра Медведь

3

Вы также можете столкнуться с этой проблемой, поскольку производитель вашего устройства не лицензировал коммерческие приложения Google, такие как Play Store, YouTube, Google Maps и т. Д. Чтобы решить проблему , следуйте этому ответу .


3

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

Когда я вернулся к исходному имени файла, которое использовалось при создании и подписании пакета, я смог обновить установленное приложение.


Я думаю, что в первый раз, когда я установил, я изменил имя. Теперь по умолчанию (app_release.apk) не устанавливается. Может быть, я попробую изменить это ... хммм.
Пашуте

3

Используя Android Studio, я ранее установил неподписанную отладочную версию APK ( Build> Build APK ) и должен был удалить ее перед установкой подписанной версии выпуска ( Build Varits> Build Variant: release , Build> Generate Signed APK ).


1
Я просто потратил два часа на ту же проблему. Мое приложение отображает версию, например. «3.5.6», но не показывает, является ли это отладочной или выпускной версией. Я возился с большим количеством разных файлов и потерял отслеживание того, где я был, и попытался обновить apk Debug с помощью apk Release. Я думаю, что Android раньше показывал сообщение типа «конфликтующие подписи файлов», но теперь (Pie, 9.0) вы просто получаете «Приложение не установлено», без возможности найти причину. Болезненный урок!
Стивен Хоскинг

3

для меня причина была в том, что у меня было несколько сборок с использованием разных вариантов сборки на одном телефоне:

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

случилось то, что некоторые из этих сборок были построены мной , другая была отправлена ​​мне другим разработчиком ... попытка установить разработчиков, в то время как у меня были другие сборки (созданные мной), вызвала вышеуказанную ошибку.

поэтому исправление было простым: удалите все сборки на моем телефоне (независимо от варианта сборки) .. затем установите apk, отправленный моим коллегой .. и это сработало как прелесть


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

3

Я столкнулся с подобной проблемой сегодня, и сначала я подумал, что это моя SD-карта, которая повредила ее. Я попробовал это на многих устройствах под управлением Android 4.4 и выше, но это продолжало вызывать одну и ту же проблему. После некоторого поиска в Google и исследования я понял, что я не выбрал подпись jar v1, которая предназначена для устройств старше, чем нуга Android 7.0, поэтому я применил оба эти подписи, установив два флажка и сгенерировали подписанный apk, и это сработало.

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

Ссылка на решение Android - приложение не установлено, ошибка при установке подписанного APK - как исправить


В этом мне помогло устройство под управлением Android 6
Стефан Желязков

Я рад, что этот ответ помог вам решить проблему. @ StefanZhelyazkov
Нельсон Катале

2

Это также может произойти при создании виджета на главном экране, и в XML-файле вашего виджета указано неверное действие, указанное в его android:configureсвойстве.

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