Erreur «Application non installée» sur Android


425

J'ai un programme fonctionnant dans l'émulateur Android. De temps en temps, je crée un .apk signé et l'exporte sur mon HTC Desire pour le tester. Tout s'est bien passé.

Sur mon dernier .apk exporté, j'obtiens le message d'erreur «Application non installée» lorsque j'essaie d'installer le .apk. Cela fonctionne bien sur les émulateurs.

Comme j'ai principalement testé sur les émulateurs et seulement de temps en temps pour exporter vers un vrai téléphone, je ne sais pas quand cela s'est produit. Quelle est la cause probable de son absence d'installation sur un téléphone physique mais de son bon fonctionnement dans les émulateurs?

J'ai essayé de redémarrer le téléphone et de supprimer le fichier .apk existant, ne résout pas le problème.


5
Lorsque vous dites que vous avez supprimé le .apk existant, voulez-vous dire que vous avez désinstallé l'application du téléphone? Sinon, désinstallez l'application avant de réessayer de l'installer.
Telmo Marques

9
Ce que TomS a dit, exécutez adb uninstall your.package.nameet ensuite adb install /path/to.apk. Je ne vois pas pourquoi cela ne fonctionnerait pas. Avez-vous changé quelque chose dans la procédure de signature?
Felix

2
Avez-vous essayé de le déboguer directement depuis Eclipse dans le périphérique connecté à l'ordinateur pour voir si le journal en dit plus?
Javi

1
J'ai supprimé l'application à l'aide de l'option de désinstallation du gestionnaire d'applications sur le téléphone.
Entropy1024

Félix. D'où dois-je exécuter cette chose adb?
Entropy1024

Réponses:


265

Principalement pour les téléphones plus anciens

Je n'ai rencontré l' App not installederreur qu'en essayant d'installer une apk sur mon téléphone qui fonctionne sur 4.4.2 aka KitKat, mais mon ami n'a pas rencontré cette erreur sur son téléphone qui fonctionne sur 6+. J'ai essayé les autres solutions telles que la suppression de l'ancienne version / débogage de l'application, car l'apk était une version finale, la suppression des données de l'application de débogage et même la suppression de toutes mes données mises en cache. Ensuite, j'ai finalement réalisé que tout ce que j'avais à faire était de sélectionner les deux versions de signature lors de la construction de mon apk signé.

entrez la description de l'image ici

Avant, je n'avais V2 (Full APK Signature)sélectionné que, mais après avoir également sélectionné V1 Jar Signature, j'ai réussi à installer mon APK signé sur mon appareil 4.4.2. J'espère que cela aide les autres!


6
Tenez compte de cette solution lorsque vous avez un ancien téléphone! J'ai un Galaxy S4 mini avec Android 4.4.2 et j'ai oublié de vérifier la "signature V1" pour qu'il ne puisse pas s'installer dans l'appareil. Après avoir vérifié, l'apk est installé comme un charme.
Jose Ramon Garcia

1
@JoseRamonGarcia La chose drôle est que j'ai exactement le même téléphone et la version Android haha! Heureux que cela ait fonctionné pour vous
Chris Gong

1
Je vous remercie! Android Studio devrait donner plus d'informations à ce sujet lors de la signature de l'application, ou rendre plus évident ce qu'il fait lorsque vous ne cochez pasV1 (Jar Signature)
melledijkstra

Dans mon cas, je dois ajouter cette configuration dans le fichier manifeste Android: installLocation = "internalOnly"
avinash kumar

1
J'ai signé à l'origine avec v2 lorsque j'ai rencontré le problème. Ensuite, j'ai signé avec v1 uniquement, puis cela a fonctionné. J'utilise sdk23 sur mon téléphone.
Amber

206

Pour moi, sur Android 9 (API 28), la désactivation de Google Play Protect à partir de l'application Play Store a fonctionné, et j'ai pu me débarrasser de l' App not Installederreur.

Pour désactiver Google Play Protect. Ouvrez l'application "Play Store" => appuyez sur le bouton Menu => sélectionnez l'option "Play Protect" => Désactivez les options "Rechercher les menaces de sécurité sur le périphérique".


4
même si j'ai essayé d'installer mon application pour la première fois, play protect m'a dit qu'il ne pouvait pas vérifier que l'application était sûre, et j'ai appuyé sur "installer quand même", l'application ne s'installait toujours pas. ce remplacement a fonctionné
user2565663

Je n'ai pas le Play Store dans l'émulateur Android (API 28).
Jerry Dodge

3
C'est également le cas sur Android 8 (juste pour combler l'écart rapporté entre 7 et 9).
cleardemon

3
Cela fonctionne bien. N'oubliez pas de rétablir les paramètres une fois installé apk.
Rahamath

Merci beaucoup, problèmes résolus sur mon Xiaomi Redmi 5 Plus
Nicola Gallazzi

150

J'ai eu un problème similaire et c'était parce que j'essayais d'installer une apk sur un téléphone avec une version précédente de la même apk, et les deux apk n'avaient pas été signées avec le même certificat. Je veux dire que lorsque j'ai utilisé le même certificat, j'ai pu remplacer l'installation précédente, mais lorsque j'ai changé le certificat entre les versions, l'installation n'était pas possible. Utilisez-vous le même certificat?


9
Oui, c'est le même certificat. Je pense que je l'avais déjà eu une fois. J'ai essayé de supprimer l'application existante sur le téléphone et j'ai également essayé d'installer une version non signée. Obtenez toujours le même message d'erreur.
Entropy1024

2
J'ai également eu le même problème pour cela (version précédente avec un autre certificat) - pour être précis, je l'avais implicitement installé pour utiliser le débogueur. Revmoving l'a résolu (pas votre cas, comme vu ci-dessous, mais vaut la peine d'être enregistré ici)
Chesterbr

11
Ce message a plus de 30 réponses. Ce que je recommande est, chaque fois que vous rencontrez ce problème, observez les journaux de l'appareil lors de l'installation de l'application. utilisez adb logcat. Vous découvrirez la cause exacte de l'échec de l'installation. le journal de mon problème est "Les signatures du package com.companyname.appname ne correspondent pas à la version précédemment installée; ignorer!"
Manikandan

J'ai changé le nom du package. et ça a marché. J'ai réalisé que j'avais testé plusieurs applications avec le même nom de package, donc l'erreur.
user30478

120

De toute évidence, il existe de nombreuses causes de ce problème. Pour moi, la situation était la suivante: j'avais déployé sur mon Nexus 7 (appareil réel) à partir d'Android Studio (v1.3.2). Tout fonctionnait bien. J'ai ensuite créé un apk signé et téléchargé sur mon Google Drive. Après avoir déconnecté mon Nexus de l'USB, je suis allé dans les paramètres / applications et j'ai désinstallé mon application (App1). J'ai ensuite ouvert Google Drive et cliqué sur mon App1.apk et choisi de l'installer (besoin de vous assurer que vous avez autorisé l'installation d'apks dans les paramètres). Ensuite, j'ai reçu le message redouté "Application non installée"

Solution pour moi: retournez dans les paramètres / applications et faites défiler toutes les applications et en bas était une version pâle de mon App1 (notez que l'App1 d'origine était en haut dans l'ordre alphabétique qui a été supprimé comme ci-dessus). En cliquant sur la version pâle, il est dit "Non installé pour cet utilisateur". (J'avais configuré mon nexus pour avoir plus d'un utilisateur). Mais dans le coin supérieur droit, il y a un bouton à trois points . J'ai appuyé sur cela et il a dit "Désinstaller pour tous les utilisateurs" . Ce que j'ai fait et cela a résolu le problème. J'ai maintenant pu cliquer sur App1.apk et il s'est bien installé sans l'erreur.


1
Oui, j'ai eu différentes raisons, et c'était l'une d'entre elles. Merci!
Alveoli

1
a le même problème. J'ai eu un compte invité activé et lors de la suppression de l'application, il n'a pas été supprimé de tous les utilisateurs.
Filip Luchianenco

2
C'était vraiment utile, et j'ai installé et désinstallé mon application 20 fois avant de le trouver. Merci beaucoup! :-)
Rahul Arora

3
Si seulement StackOverflow nous laissait voter plus d'une fois. Cette solution m'a aidé il y a presque un an. J'ai voté positivement et rapidement oublié. J'ai eu le même problème aujourd'hui et cela m'a aidé à nouveau. J'ai essayé de voter et StackOverflow a dit que je l'avais déjà fait. Tant pis.
Glenn

2
Merci. J'ai également rencontré ce problème. Il n'est absolument pas évident, la première fois, que la désinstallation de l'application ne le fasse que pour l'utilisateur actif actuel. Pour éviter d'entrer dans les paramètres à chaque fois, j'utilise la commande adb uninstall your.package.namequi désinstalle pour tous les utilisateurs.
Xavier

61

J'ai rencontré le problème lorsque j'ai mis à jour mon Android de 2.3.2 à 3.0.1. Si tel est le cas, l'EDI considérera automatiquement les points suivants.

1.Vous ne pouvez pas installer une application avec Android: testOnly = "true" par des moyens conventionnels, comme à partir d'un gestionnaire de fichiers Android ou à partir d'un téléchargement depuis un site Web

2.Android Studio définit Android: testOnly = "true" sur les fichiers APK exécutés à partir de

si vous exécutez votre application en connectant directement l'appareil à votre système, apk s'installera et ne fonctionnera pas de problème.

si vous avez envoyé cet apk par copie à partir du dossier build out put et debug, il ne sera jamais installé sur l'appareil.

Solution : allez Construire ---> Construire APK (s) ---> copier le partage de fichiers apk à votre équipe

alors votre problème sera résolu.


1
Vous avez sauvé mon travail! Je vous remercie!
img.simone

1
Oh mon Dieu, ça m'a pris 3 heures ..
cuddlemeister

Ça marche! Je vous remercie!
Peter

1
Ce ceci ici est la réponse pour moi. Tellement ennuyeux que cette chose simple n'a pas été mise à jour de manière flagrante dans le programme ou par le biais de messages d'erreur sur l'appareil. Merci mec!
LFMekz

29

J'ai fait face au même problème. Le problème était que l'activité principale de mon fichier AndroidManifest.xml a été écrite deux fois. J'ai supprimé le doublon.


Merci pour l'astuce! Dans mon cas, a android:exportedété défini sur faux pour l'activité de lanceur
ildar ishalin

21

Cela peut se produire si votre MainActivity est déclarée deux fois dans votre AndroidManifest.xml.

Autre raison possible: vous avez modifié l'activité de lancement. Astuce: ne le faites jamais avec des applications déjà publiées! Raisons discutées dans le blog des développeurs Android .


4
+1 android:nameattribut de tout Activity, Service, BroadcastReceiveretc. ne peut pas être modifié dans le fichier manifeste. Bien qu'il semble s'agir de l'identifiant privé de votre application, il s'agit d'une API publique.
caw

Je dois changer mon activité de lancement J'ai ajouté un écran de démarrage et à l'intérieur je dois télécharger des flux avant de démarrer l'activité principale. Avez-vous une solution autre que de placer l'écran de démarrage à l'intérieur de l'activité principale?
Chris Sim

2
Vous pouvez utiliser une balise <activity-alias> pour gérer cela!
thiagolr


14

J'ai eu le même problème et voici comment le résoudre: Accédez au fichier Manifest et assurez-vous que les attributs "Debuggable" et "Test Only" sont définis sur false. Ça a marché pour moi :)


2
Je ne sais pas ce que vous entendez par «Test uniquement», mais définir le débogable sur true et signer l'apk a fonctionné pour moi!
ingh.am

n'a pas fonctionné pour moi. J'ai utilisé:android:testOnly="false" android:debuggable="false"
Francisco Corrales Morales

pourriez-vous expliquer? Je n'ai ni attribut du tout, ni vrai ni faux, mais pas là. À quoi ressemble la ligne?
pashute

14

Pour ceux qui utilisent Android Studio 3.

La réponse de Suryanarayana Reddy est correcte, pensant qu'elle n'énonce pas les étapes pour le résoudre, par conséquent.

dans votre AndroidManifest.xml sous la balise d'application, ajoutez testOnly="false" et android:debuggable="true"aimez:

<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"
    >

Modifiez
ensuite dans la barre de menus d'AndroidStudio Build> Build APK (s)


Merci! android:debuggable="true"conduit à Error: Avoid hardcoding the debug mode; leaving it out allows debug and release builds to automatically assign one [HardcodedDebugMode]. J'ai essayé android:testOnly="false", à la fois Build > Build Bundl(s) / APK(s) > Build APK(s)et Build > Generate SignedBundle APK...avec les versions de signature v1, v2 (comme dans la capture d'écran du haut). J'ai dû supprimer l'application précédente avant, puis en installer une nouvelle.
CoolMind

Récemment rencontré ce problème. Vient d'ajouter android: testOnly = "false" et Build -> Build Apks et c'est fait. Tout trié. Merci! Pas besoin d'ajouter une autre propriété Android comme Android: debuggable = "true".
androidStud

12

Je sais que c'est un ancien message, mais pour les nouveaux utilisateurs, cela peut être utile. J'ai eu le même problème: mon application a bien fonctionné lors du débogage. Lorsque j'ai signé l'APK, j'ai reçu le même message: "Application non installée".

J'ai corrigé la désinstallation de mon JDK (j'utilisais jdk-6u14-windows-x64) et j'en ai installé un nouveau (jdk-6u29-windows-x64). Après avoir exporté et signé à nouveau l'APK, tout allait bien!

En reprenant, mon problème était en version JAVA. Merci Oracle !!


Cela m'a corrigé ... plus d'infos stackoverflow.com/questions/6282169/…
Greg Ennis

2
C'est incroyablement étrange. Était-ce pour un émulateur ou un appareil?
Joe Plante

12

Mon problème est que j'ai plusieurs comptes d'utilisateurs sur l'appareil. J'ai supprimé l'application sur 1 compte, mais elle était toujours installée sur l'autre compte. Ainsi, l'espace de noms est entré en collision et ne s'est pas installé. La désinstallation de l'application de tous les utilisateurs l'a corrigée pour moi.


2
Dans Application Manager, sélectionnez l'application (qui apparaîtra mais sera répertoriée comme désinstallée), sélectionnez Plus et l'option Désinstaller pour tous les utilisateurs apparaîtra.
Casey Murray

9

Mon problème était: j'ai utilisé l' Apk de débogage, qui a été généré pendant que je faisais la commande Exécuter d'Android Studio

La solution était: au lieu d'utiliser ce fichier, nettoyez le projet et cliquez sur Build> Build APK (s) à partir d'Android Studio. Ensuite, vous pouvez utiliser l'APK généré à partir du dossier habituel (app / build / outputs / apk / debug /)

Le fichier généré comme celui-ci s'est installé sans problème.


7

Si l'application ne s'installe pas, supprimez le fichier .android_secure/smdl2tmpl.asecde la carte SD.

Si le dossier .android_secureest vide dans le gestionnaire de fichiers, supprimez-le du PC.


5

À la fin, j'ai découvert qu'aucune application n'était installée avec succès, pas seulement la mienne. J'ai défini la valeur par défaut de l'application d'installation de la carte SD sur Automatique. Cela l'a corrigé.


1
Comment tu fais ça? Je ne trouve pas du tout cette option sur mon appareil
SoulRayder

Huawei P8 Lite, Android 6.0, n'a que: Avancé / Mémoire et stockage / emplacement par défaut: interne / SDCard Cela n'a pas aidé.
kaay

5

Si vous avez une version précédente pour cette application, essayez d'abord de l'effacer, maintenant mon problème a été résolu par cette méthode.


5

J'ai également résolu ce problème,

Le problème était que j'ai déclaré mon activité principale deux fois, On comme première activité à charger et j'ai également spécifié un filtre d'intention pour elle Et encore une fois en dessous, je l'ai à nouveau déclaré.

Assurez-vous simplement de ne pas déclarer vos activités deux fois.


SI vous déclarez votre activité deux fois dans le Manifest.xmlfichier, une erreur de compilation s'affichera sauf si vous avez les mêmes activités avec le même nom mais dans des packages différents MAIS cela ne fonctionne pas avec moi car j'ai tout vérifié.
blueware

5

créer un fichier de clés via la ligne de commande

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

exportez apk via Eclipse, faites un clic droit sur le projet Android Outils Android> Exporter le package d'application signé , puis donnez l'emplacement et le mot de passe du magasin de clés.

cela créera apk signé en même temps apk sera zipaligned. Et installable.

Si vous passez par la ligne de commande pour tous, vous pouvez parfois rencontrer l'erreur "Application non installée". (Une erreur d'application non installée peut se produire non seulement lors de l'utilisation de la ligne de commande. Cela peut également être dû à d'autres raisons)


4

J'ai eu le même problème, c'est-à-dire que l'application s'est présentée comme étant installée, mais ne s'est pas lancée lorsque l'icône a été tapée. Après quelques coups de tête, j'ai trouvé que j'avais stupidement placé 'android: exports = "false"' pour mon activité de lanceur principal dans le fichier AndroidManifest .... Une fois que je l'ai supprimé, l'application s'est bien lancée ..


4

Mon problème était similaire à celui de @Lunatikzx. En raison d'une balise d'autorisation incorrecte qui a été écrite comme attribut à l'application:

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

Ce qui a résolu le problème était de changer la balise d'autorisation pour séparer la balise comme ceci:

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

4

Le chargement latéral d'applications de débogage pour les tests sur un téléphone physique a fonctionné de manière fiable jusqu'à ce que je mette à niveau le téléphone d'Android Pie vers Android 10. Après cela, l'erreur «Application non installée» est survenue à chaque fois que j'essayais de charger l'application latéralement.

Sur la base d'un avertissement dans mon AndroidManifest.xml, j'ai changé de ...

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

à...

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

Après cela, j'ai pu charger mon application une seule fois. Ensuite, j'ai rencontré à nouveau la même erreur "Application non installée". En allowBackuprevenant à true, cela a fonctionné à nouveau (au moins une fois).

Il est évident d'après le nombre de réponses et la variation des réponses qu'il y a plusieurs raisons à ce problème. Je partage cela au cas où cela aiderait les autres.


Je viens essayé de placer android:allowBackup="true"à android:allowBackup="false"et toujours pas de chance.
KRK

3

Vérifiez avec la version Android.

Si vous installez des applications non commerciales et une version incompatible, vous obtiendrez cette erreur.

Ex: Application ciblée sur 2.3.4 Votre appareil est 2.2 Ensuite, vous obtiendrez cette erreur.


où dans les fichiers de configuration gradle puis-je voir la version cible d'Android? Je ne le vois build.gradleni dans le fichier manifeste Android. À moins que compileSdkVersion(valeur 23) ou minSdkVersion(16) ou targetSdkVersion(22) ne pointe d'une manière ou d'une autre sur le réglage souhaité. Ma galaxie exécute Android 7.0 (et demande une mise à jour mais je ne le lui permet pas encore). Je n'utilise pas Android Studio pour créer mon application native, mais plutôtgradlew assembleRelease
Pashute

3

L'erreur «Application non installée» peut également se produire si l'application a été installée ou déplacée sur la carte SD, puis que le câble USB a été connecté, provoquant le démontage de la carte SD.

La désactivation du stockage USB ou le déplacement de l'application vers le stockage interne résoudrait le problème dans ce cas.


3

J'ai également rencontré ce problème. Veuillez essayer cette solution. Assurez-vous que le nom du package de votre projet est différent de votre projet précédent qui était déjà installé sur votre téléphone mobile. Je pense qu'ils obtiennent un conflit en leur nom. Ça marche en moi.


2
Cela fonctionnera mais pas la meilleure solution car vous vous retrouverez avec des millions d'applications installées. Voir certaines des autres réponses ci-dessus.
Astra Bear

3

Vous pouvez également rencontrer ce problème car le fabricant de votre appareil n'a pas accordé de licence aux applications commerciales Google, telles que Play Store, YouTube, Google Maps, etc. Suivez cette réponse pour résoudre le problème.


3

Apparemment, cela peut également être dû au changement de nom de l'APK avant de l'installer. Je voulais réduire le nombre de saisies que les utilisateurs devaient faire pour obtenir l'application à partir de notre site Web en raccourcissant le nom du fichier. Après cela, ils n'ont pas pu l'installer.

Une fois que je suis revenu au nom de fichier d'origine utilisé lors de la création et de la signature du package, j'ai pu mettre à jour l'application installée.


Je pense que lors de la première installation, j'ai changé de nom. Désormais, la valeur par défaut (app_release.apk) ne s'installe pas. Je vais peut-être essayer de le changer ... hmmm.
pashute

3

En utilisant Android Studio, j'avais précédemment installé la version de débogage non signée de l'APK ( Build> Build APK ) et je devais la désinstaller avant d'installer la version de version signée ( Build Variants> Build Variant: release , Build> Generate Signed APK ).


1
Je viens de perdre deux heures sur le même problème. Mon application affiche la version, par exemple. "3.5.6", mais ne montre pas s'il s'agit d'une version de débogage ou de version. J'ai tripoté de nombreux fichiers différents et perdu la trace de l'endroit où j'étais, et j'ai essayé de mettre à jour une apk Debug avec une apk Release. Je pense qu'Android affichait un message comme "signatures de fichiers en conflit", mais maintenant (Pie, 9.0) vous obtenez simplement "Application non installée", sans aucune option pour en trouver la raison. Une leçon douloureuse!
Stephen Hosking

3

pour moi, la cause était que j'avais plusieurs builds utilisant différentes variantes de build sur le même téléphone:

entrez la description de l'image ici

ce qui s'est passé, c'est que certaines de ces versions ont été construites par moi , une autre m'a été envoyée par un autre développeur .. essayer d'installer les développeurs alors que j'avais d'autres versions (construites par moi) a provoqué l'erreur ci-dessus.

donc le correctif était simple: supprimez tous les builds sur mon téléphone (quelle que soit la variante de build) .. puis installez l'apk envoyé par mon pair .. et cela a fonctionné comme un charme


eu le même problème, je suppose que la solution est de toujours signer les builds lors de l'utilisation des saveurs
Nickmccomb

3

J'ai fait face à un problème similaire aujourd'hui et au début, je pensais que c'était ma carte SD qui l'avait corrompue. Je l' ai essayé sur de nombreux appareils fonctionnant sous Android 4.4 ou version mais il a continué apporter la même issue.After googling et de la recherche , j'ai réalisé que je ne pas sélectionner la signature du pot v1 qui est pour les appareils plus anciens que Android 7.0 Nougat donc j'ai appliqué deux ces signatures en sélectionnant les deux cases à cocher et généré un apk signé et cela a fonctionné.

entrez la description de l'image ici

Lien vers la solution Android - Erreur d'application non installée lors de l'installation d'un APK signé - Comment réparer


Cela m'a aidé pour un appareil qui exécute Android 6
Stefan Zhelyazkov

Je suis heureux que cette réponse vous ait aidé à résoudre le problème. @ StefanZhelyazkov
Nelson Katale

2

Cela peut également se produire lors de la création d'un widget d'écran d'accueil, et votre fichier XML de widget a une activité incorrecte spécifiée dans sa android:configurepropriété.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.