Échec [INSTALL_FAILED_ALREADY_EXISTS] lorsque j'ai essayé de mettre à jour mon application

388

lorsque j'ai essayé de mettre à jour mon applcation avec une nouvelle version qui a la même signature que la précédente, affiche l'erreur ci-dessus.

Qu'est-ce qui me manque?

DroidBot
la source

Réponses:

756

Si vous installez l'application sur votre appareil via, adb installvous devez rechercher l'option de réinstallation qui devrait être -r. Donc, si vous le faites, adb install -rvous devriez pouvoir installer sans désinstaller auparavant.

WarrenFaith
la source
1
adb install -rne fonctionne pas toujours (j'ai un EVO 4G de Sprint qui refuse de se comporter comme prévu). Le seul problème que j'ai trouvé est de supprimer l'application manuellement. Parfois, je dois même le faire via l'interface utilisateur du téléphone parce que l'EVO est tellement capricieux.
jww
21
Je suis venu ici parce que je voulais savoir s'il fallait d' adb install -rabord supprimer puis installer ou mettre à niveau mon application. Bien que adbla description de '' ne soit pas très claire ( -r: remplace l'application existante ), met adb install -reffectivement à niveau votre application et ne supprime pas vos données d'application. Convient donc pour tester la mise à niveau de votre application (ce sont les informations que je recherchais).
Thibault
8
Pour les personnes affirmant que adb install -rcela ne fonctionne pas: je suppose que le .apkfichier que vous essayez d'installer n'a pas été signé avec le même certificat de développeur que le .apkfichier installé sur l'appareil. Cela se produit facilement si vous avez installé une application de débogage et que vous essayez ensuite d'installer l'application Release ou l'inverse. Vous ne pouvez pas mettre à jour une application si elle n'est pas signée avec le même certificat.
Thibault D.13
1
Si vous utilisez plusieurs comptes, vous devrez peut-être désinstaller tous les comptes (voir la réponse de GregP). Cela a fonctionné pour moi après l'avoir fait.
JD Sandifer
ne fonctionne pas, mon application est une application système, et cela ne résout pas mon problème: /
htafoya
11

Vous obtenez cette erreur car une application avec un nom de package identique à votre application existe déjà. Si vous êtes sûr de ne pas avoir installé la même application auparavant, modifiez le nom du package et essayez.

Sinon, voici ce que vous pouvez faire:

  1. Désinstaller l'application de l'appareil: accédez à Paramètres -> Gérer les applications et choisissez Désinstaller OU
  2. Désinstallez l'application à l'aide de l'interface de ligne de commande adb: tapez adb uninstall Après avoir terminé cette étape, essayez de réinstaller l'application.
Muhammad Mubashir
la source
Mon application n'apparaissait pas dans le menu ou dans l'App Store - mais l'a trouvée grâce aux conseils de Muhammad.
DavidP
2
Ce n'est pas une bonne solution. Que se passe-t-il si vous avez un tas d'états comme SharedPrefs enregistrés dans l'application? Si vous effectuez une désinstallation du système, vous devrez à nouveau reconfigurer votre application!
IgorGanapolsky
C'était la solution dont j'avais besoin adb uninstall my.package. Curieusement, il n'a pas désinstallé les préférences que je voulais supprimer, mais il s'est débarrassé du package, ce qui m'a empêché de le réinstaller.
JMD
6

Cela peut signifier que l'application est déjà installée pour un autre utilisateur sur votre appareil. Les utilisateurs partagent des applications. Je ne sais pas pourquoi ils le font mais ils le font. Donc, si un utilisateur met à jour une application est également mise à jour pour l'autre utilisateur. Si vous désinstallez sur l'un, il ne supprime pas l'application du système sur l'autre.

GregP
la source
C'était mon problème exact! Vous avez continué à essayer de désinstaller - à la fois avec adb et manuellement, mais vous avez adb install <package.apk>continué à échouer même si l'application n'était plus visible dans la liste des applications. Il s'avère qu'il était toujours là sur l'autre compte sur mon appareil ... Merci!
JD Sandifer
Cela m'a également arrangé. Pour plus d'informations sur un appareil à désinstaller pour tous les utilisateurs, je devais aller dans Paramètres> Applications, appuyez sur l'application, appuyez sur les points de suspension en haut à droite et appuyez sur Désinstaller pour tous les utilisateurs.
d219
3

À installer

adb install -r exampleApp.apk

(Le -rfait remplacer la copie existante, ajouter un -ssi l'installation sur un émulateur)

Assurez-vous que l'application est signée de la même manière et qu'il s'agit de la même debug/releasevariante

Prime

J'ai mis en place un alias dans my ~/.bash_profile, pour en faire une commande 2char.

alias bi="gradlew && adb install -r exampleApp.apk"

(Abréviation de Build and Install)

Gibolt
la source
0

Si vous rencontrez toujours un problème, essayez de désinstaller l'application à l'aide de l'invite de commande. ajoutez simplement la commande, adb uninstall com.example.yourpackagename puis essayez de réinstaller à nouveau.

Sanket Sangani
la source
0

Avec ma tablette Android 5, chaque fois que j'essaie d'utiliser adb, pour installer une version apk signée, j'obtiens l' [INSTALL_FAILED_ALREADY_EXISTS]erreur.

Je dois d'abord désinstaller le package de débogage. Mais, je ne peux pas désinstaller à l'aide du gestionnaire d'applications de l'appareil !

Si vous désinstallez la version de débogage avec le gestionnaire d'applications , je dois réexécuter la variante de version de débogage d'Android Studio, puis la désinstaller à l'aide deadb uninstall com.example.mypackagename

Enfin, je peux utiliser adb install myApp.apkpour installer l'apk de la version signée.

BlueSpectrumz
la source