web-dev-qa-db-fra.com

Erreur 'App not Installed' sur Android

J'ai un programme fonctionnant dans l'émulateur Android. De temps en temps, je crée un fichier .apk signé et l'exporte vers mon HTC Desire à des fins de test. Tout s'est bien passé.

Sur mon dernier fichier .apk exporté, le message d'erreur "Application non installée" apparaît lorsque j'essaie d'installer le fichier .apk. Cela fonctionne bien sur les émulateurs.

Comme je testais principalement les émulateurs et exportais de temps en temps vers un vrai téléphone, je ne sais pas quand. Quelle est la cause probable de son installation non 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 corrige pas le problème.

302
Entropy1024

Principalement pour les téléphones plus anciens

Je n'ai rencontré l'erreur App not installed que lorsque j'essayais d'installer un apk sur mon téléphone fonctionnant sous 4.4.2, également appelé KitKat, mais mon ami n'a pas rencontré cette erreur sur son téléphone fonctionnant sous 6+. J'ai essayé d'autres solutions, telles que la suppression de l'ancienne version/debug de l'application, car l'apk était une version validée, la suppression des données de l'application de mise au point et même la suppression de toutes mes données mises en cache. Puis, finalement, j'ai 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é.

 enter image description here

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

221
Chris Gong

J'avais un problème similaire, car j'essayais d'installer un apk sur un téléphone doté d'une version antérieure du même apk, et les deux apks n'avaient pas été signés avec le même certificat. Je veux dire quand j'ai utilisé le même certificat, j'ai pu écraser 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?

122
Javi

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

Solution pour moi: revenir dans les paramètres/applications et faire défiler bien que 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 disait "Pas installé pour cet utilisateur". (J'avais configuré mon lien pour avoir plus d'un utilisateur). Mais dans le coin supérieur droit, il y a un bouton à trois points. J'ai appuyé sur cette touche et le message "Désinstaller pour tous les utilisateurs". Ce que j'ai fait et cela a résolu le problème. Je pouvais maintenant cliquer sur App1.apk et tout s’est installé correctement sans erreur.

98
Astra Bear

Pour moi, sur Android 9 (API 28), désactiver Google Play Protect depuis l'application Play Store a fonctionné, et j'ai pu supprimer l'erreur App not Installed.

Pour désactiver Google Play Protect. Ouvrez l'application "Play Store" => tapez sur sur le bouton Menu => sélectionnez l'option "Play Protect" => Désactivez les options "Analyser le périphérique pour détecter les menaces à la sécurité".

44
Qasim

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

28
christophe

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

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

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

si vous exécutez votre application en connectant directement l'appareil à votre système, apk installera et exécutera aucun problème.

si vous avez envoyé cet apk par copie d'un dossier de compilation et de débogage, il ne sera jamais installé dans l'appareil. 

Solution : go Build ---> Build APK (s) ---> copier le partage de fichiers apk dans votre équipe

alors votre problème sera résolu.

27
Surya Reddy

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

Une 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 Blog des développeurs Android .

20
Sergey Glotov

J'ai eu le même problème. Je ne savais pas qu'une application devait être signée même pour les tests.

Après l'auto-signature, il s'est bien installé.

15

Je sais que ceci est un ancien post, mais pour les nouveaux utilisateurs 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 not installed".

J'ai corrigé que désinstallé mon JDK (j'utilisais jdk-6u14-windows-x64) et installé un nouveau (jdk-6u29-windows-x64). Après exportation et signature de l'APK, tout allait bien! 

En reprenant mon problème, c'était en version Java. Merci Oracle !!

11
Joubert Vasconcelos

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. Cela a fonctionné pour moi :)

10
Thinkcomplete

Mon problème était que j'ai plusieurs comptes d'utilisateur sur l'appareil. J'ai supprimé l'application sur un 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.

8
Rule

Si l'application ne s'installe pas, supprimez le fichier .Android_secure/smdl2tmpl.asec de la carte SD.

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

7
Nnamdi

Pour ceux qui utilisent Android Studio 3.

La réponse de Suryanarayana Reddy est correcte, à condition de ne pas énoncer d'étapes pour la résoudre.

dans votre fichier AndroidManifest.xml sous la balise d'application, ajoutez testOnly="false" et Android:debuggable="true" comme suit:

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

Modifier  
puis dans la barre de menu d'AndroidStudio Build> Build APK (s)

6
Akshay More

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

Le problème était que j’ai déclaré mon activité principale deux fois, On étant la première activité à charger et j’ai également spécifié un filtre d’intention pour elle

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

5
Avi Mistriel

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

4

créer un fichier de clés en ligne de commande

keytool -genkey -alias nom_fichier_clé.keystore -keyalg RSA -validité 1000000000000000 -keystore nom_fichier_clé.keystore

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

cette caisse signé apk en même temps apk sera zipaligned. Et installable.

Si vous passez par la ligne de commande pour tous, vous pouvez parfois être confronté à 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)

Finalement, j'ai découvert qu'aucune application n'avait été installée avec succès, pas seulement la mienne. Je règle l’installation par défaut de l’application depuis la carte SD sur Automatique. Cela l'a corrigé.

4
Entropy1024

J'ai eu le même problème, c'est-à-dire que l'application s'est révélée en cours d'installation, mais qu'elle ne s'est pas lancée lorsque l'icône a été exploitée. Après un peu de casse-tête, j'ai découvert que j'avais bêtement placé "Android: exports =" false "" pour mon activité principale de lancement dans le fichier AndroidManifest .... Une fois que je l'ai supprimé, l'application a bien démarré ... 

4
mastDrinkNimbuPani

Mon problème était similaire à celui de @Lunatikzx. En raison d'une balise d'autorisation erronée qui a été écrite en tant qu'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 pour moi, c'était de changer l'étiquette d'autorisation en une étiquette distincte comme ceci:

<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
4
SMGhost

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

La solution était: Au lieu de cela d’utiliser ce fichier, de nettoyer le projet et de cliquer sur Construire> Construire APK (s) dans Android Studio. Ensuite, vous pouvez utiliser l'APK généré à partir du dossier habituel (app/build/output/apk/debug /)

Le fichier qui a été généré comme ceci s’est installé sans problème.

4
Adam Kis

J'ai aussi 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 déjà installé sur votre téléphone mobile. Je pense qu'ils ont des conflits dans leurs noms. Cela fonctionne en moi.

3
joepadz

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.

3
Noby

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

3
Bobs

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é, entraînant le démontage de la carte SD.

Désactiver le stockage USB ou ramener l'application sur le stockage interne résoudrait le problème dans ce cas.

3
threeshinyapples

Apparemment, cela peut aussi être causé en renommant l'APK avant de l'installer. Je voulais réduire le nombre de saisies que les utilisateurs devaient faire pour obtenir l'application sur notre site Web en raccourcissant le nom du fichier. Après cela, ils ont été incapables de l'installer.

Une fois que j'ai retrouvé le 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.

2
Michael Todd

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

 enter image description here

ce qui s’est passé est que certaines de ces versions ont été construites par moi, une autre a été envoyée par un autre développeur .. en essayant d’installer les développeurs alors que d’autres versions (construites par moi) avaient provoqué l’erreur susmentionnée.

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

2
abbood

Ouvrez votre logCat lorsque vous essayez d'installer l'application. Réglez-le sur "Aucun filtre". Recherchez l'identificateur de package "InstallAppProgress". Si l'installation échoue, vous devriez voir un "code d'erreur d'installation". Dans mon cas c'était 

D/InstallAppProgress: Installation error code: -7

À partir de là, vous pouvez utiliser ce link pour trouver des informations sur votre code d’erreur spécifique. 

2
sirFunkenstine

Dans mon cas, c’est parce qu’Android Studio 3.0 définit Android:testOnly="true" sur des fichiers APK construits à partir de la variante release

https://commonsware.com/blog/2017/10/31/Android-studio-3p0-flag-test-only.html

Alors lancez ./gradlew assembleRelease résoudre mon problème

2
heavyauto

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 le désinstaller avant d'installer la version signée ( Variantes de build> Build Variant: release , Construire> Générer un APK signé ).

2
mrts

Dans mon cas, c'était parce que j'utilisais la version alpha de la bibliothèque de support 28. On dirait que Google marque ces versions antérieures à la version testOnly. Si vous voulez vraiment publier comme ceci (par exemple, vous voulez pousser une bêta interne comme je l'ai fait), vous pouvez ajouter cette ligne à votre fichier gradle.properties:

Android.injected.testOnly=false
1
Gabriel Sanmartin

Si vous essayez d'installer un apk directement à partir de Google Drive, le simple redémarrage de l'appareil a résolu le problème pour moi. 

1
Onur D.

Marshmallow dans le propriétaire et l'utilisateur invité est là.Si l'invité installé la même application, nous ne pouvons pas installer la même application dans le propriétaire.J'ai corrigé cette suppression de l'application dans l'invité

1
Ramesh sambu

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

1
TalkLittle

Lorsque ce problème m'est arrivé, je l'ai corrigé en supprimant certains fichiers non essentiels que j'avais dans mon dossier de projet, comme le magasin de clés.

Avec le recul, il serait probablement mauvais de donner aux gens les clés de votre jeu. 

1
Houseman

J'ai eu le même type d'erreur cela a été causé par cette ligne dans mon fichier XML manifeste Android.

Android:permission="Android.permission.INSTALL_LOCATION_PROVIDER"

J'ai supprimé la ligne et cela a résolu mon problème. J'espère que cela t'aides 

1
Lunatikzx

Dans mon cas, mon application précédente publiée avait été signée par une autre clé. Je l'ai donc désinstallée, mais sur mon téléphone test (LG G4 H-818) 2 utilisateurs existent donc l'application précédente est toujours installée sur mon téléphone et n'a pas désinstallé correctement! alors quand j'ai essayé de l'installer à nouveau, ça a échoué ...

J'ai donc essayé de changer d'utilisateur et de désinstaller l'application précédente, enfin l'application installée correctement.

J'espère que cela vous aidera à l'avenir :)

1
MilaDroid

J'ai rencontré ce problème sous différentes formes, mais cette fois c'était un nouveau:

Dans ce cas, j'ai eu une collision de noms de fournisseurs - le même nom de fournisseur existait dans mon application et dans une autre de mes applications. 

0
Gal Rom

J'ai fait face à ce problème avec ma dernière version de l'application sur Playstore. Le problème est la combinaison du changement de MainLauncher et du raccourci d'application. 

Nous avons ajouté un écran de démarrage et notre point d’entrée est SplashActivity au lieu de MainActivity. Ainsi, les personnes ayant des versions précédentes et disposant d'un raccourci sur leur écran d'accueil ne peuvent pas ouvrir l'application. Il dit toujours quelque chose comme App not installed toast. Cela ne se produit pas sur tous les lanceurs (pour nous, c'est plus courant sur les Samsung). 

Dans les coulisses, App shortcut devrait être un point d’entrée de mise à jour de MainActivity à SplashActivity Mais, pour une raison quelconque, de nombreux lanceurs tiers ne l’obéissent pas. Le correctif est effacer le raccourci et l'ajouter à nouveau.

Si vous n'avez pas encore mis à jour votre application dans Playstore, passez par cet article .

Attention lors de la mise à jour de l'activité du lanceur.

0
sha

Assurez-vous que ces conseils pris en compte:

  1. Votre build variants et votre Flavors devraient être identiques (application installée et nouvelle), généralement
  2. Le fichier Signature doit être identique (fichier *. jks)
  3. La version que vous avez définie dans build.gradle ou AndroidManifest a une valeur supérieure à celle de la version actuelle (il est recommandé de définir la version dans build.gradle).
  4. L'URL est correcte (sans typo) et le serveur est accessible (WebService/WebMethod/WIFI est en cours d'exécution/disponible et ...)
  5. Fichier téléchargé complètement
  6. Fichier enregistré correctement dans le répertoire souhaité
  7. Le réglage pour les données et le type dans setDataAndType est correct
0
Mehran Zamani
  1. Fermez le projet.
  2. Supprimez le dossier .idea dans le projet.
  3. Ouvrez ce projet dans le studio Android.
  4. Connectez votre téléphone et construisez-le.
  5. Maintenant, l'application installée avec succès. 
0
jakir hussain

Parfois, le stockage non disponible doit également être mentionné car je suis confronté à ce problème car le périphérique à installer ne dispose pas de suffisamment d’espace et que le système n’est pas en alerte pour l’utilisateur. Vous pouvez simplement le savoir à cause du débogage

0
Anonymous-E

Je me suis heurté à cela quand un outil lié à mon outil de construction personnalisé utilisait ADT avec un certificat destiné à iOS (ce n'était certainement pas ma première hypothèse, car il ne semble y avoir rien de spécial à propos des certificats Android, sauf Seulement vous devriez en avoir un, ce ne sont que des certificats RSA-1024, même l'auto-signé est acceptable, du moins pour les installations autres que sur le marché).

0
Simon Buchan

J'avais signé l'application avec 2 certificats différents, donc supprimer l'ancienne version de l'ancien certificat, puis réinstaller la nouvelle, a résolu le problème pour moi.

0
leandroid

J'ai rencontré cette erreur "Application non installée" lorsque le périphérique sur lequel j'avais été installé ne disposait pas de suffisamment de mémoire. La suppression de quelques fichiers a permis l'installation de l'application. Bizarre que cela ne me donne pas un message "pas assez d'espace" à la place. (Remarque: j'installais un apk manuellement à partir d'un emplacement "inconnu".)

0
Adjwilley

Dans mon cas, j'ai supprimé Inutilisé autorisations non nécessaires

J'ai seulement besoin de 1 permission

<uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION" />

Et supprimez autorisations non désirées qui ne sont pas requises et ont commencé à donner cette erreur

<uses-permission Android:name="Android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission Android:name="Android.permission.INSTALL_LOCATION_PROVIDER" />
<uses-permission Android:name="Android.permission.CONTROL_LOCATION_UPDATES" />
0
vijay

Si quelqu'un a ce problème, vérifiez le numéro de build. Si votre numéro de version est inférieur au numéro de version de l'application installée, votre application ne sera pas installée et vous obtiendrez le «fichier d'application ou apk corrompu». 

Pour résoudre ce problème, incrémentez simplement votre numéro de build jusqu'à ce qu'il soit égal ou supérieur au numéro de build installé.

0
ikkarion

essayez ce changement dans le AndroidManifest.xml :

  • définissant debuggable sur true
  • signer l'apk
0
cyber cyber1621

ouvrez AndroidMainfest puis ajoutez verionCode, versionName dans la balise d'application et assurez-vous que le débogage est égal à false:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
package="...">

<application
    ...
    Android:debuggable="false"
    Android:versionCode="1"
    Android:versionName="1.0"
    tools:ignore="HardcodedDebugMode">
    ...
</application>

puis ouvrez build.gradle (module: app), assurez-vous que verionCode, versionName est sorti et minsdk <= votre sdk mobile:

defaultConfig {
    ...
    minSdkVersion 19
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
   ...
}

rechercher dans les sources: https://developer.Android.com/studio/publish/

& https://developer.Android.com/studio/publish/preparing

& https://developer.Android.com/studio/publish/versioning

et https://developer.Android.com/studio/publish/app-signing

  1. supprimez le fichier .apk de build> output> apk dans votre module d'application (module principal du projet). 
  2. supprimer le dossier .idea et .gradle de la racine du projet 
  3. nettoyer le projet.
  4. cliquez sur l'icône de la barre latérale de la barre latérale dans Android Studio et cliquez sur l'icône de synchronisation pour actualiser tous les projets. lancez maintenant le projet et cela devrait fonctionner.
0
44kksharma

J'ai corrigé cela en ne signant pas d'abord l'application et non avec Maven. J'ai ajouté ceci à mon chemin de construction.

    <plugin>
        <groupId>com.jayway.maven.plugins.Android.generation2</groupId>
        <artifactId>Android-maven-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
            <sign>
                <debug>false</debug>
            </sign>
        </configuration>
    </plugin>

Après cela, j'ai signé mon application manuellement: jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore /home/myself/.Android/release.keystore myapp-1.0.apk androidreleasekey

0
Bevor

J'ai également été confronté au même problème . Dans mon application contenait des services . Les services s'exécutaient en arrière-plan même après la désinstallation de l'application, après un arrêt forcé de l'application, un message indiquant l'application était alors affiché. a été désinstallé . Puis j'ai installé l'application sans aucun problème.

0
Jayakumar Bellie

Si vous avez essayé toutes les réponses ci-dessus et qu'aucune d'entre elles n'a fonctionné, essayez ceci:

Si votre variante de construction est 'debug', vous devez ajouter ceci sous buildTypes dans le dégradé de construction de l'application pour que l'application puisse être installée sur votre appareil:

debug {
    minifyEnabled false
}
0
Ali Nem