Les signatures de package ne correspondent pas à la version précédemment installée

94

Voici mon projet: https://github.com/kenpeter/my_hak_news , qui est une copie directe de https://github.com/grigio/HAgnostic-News .

Clonez Git https://github.com/kenpeter/my_hak_news , puis exécutezreact-native run-android

Vous avez cette erreur:

* What went wrong:
Execution failed for task ':app:installDebug'.
> com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Failed to finalize session : INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.hagnosticnews signatures do not match the previously installed version; ignoring!

Problème pertinent: https://github.com/grigio/HAgnostic-News/issues/1 , je suis de différentes manières, mais je ne parviens pas à résoudre ce problème.

Kenpeter
la source
14
L'application est-elle déjà installée sur votre téléphone? Si tel est le cas, vous devrez le désinstaller car vous utilisez une signature différente de celle d'origine
maxoumime
Une fois installé sur mon téléphone, je l'ai désinstallé en appuyant longuement dessus, puis je l'ai déplacé pour le désinstaller. Ne fonctionne toujours pas.
kenpeter
4
Vérifiez si l'application a été désinstallée pour tous les utilisateurs. Allez dans Paramètres -> Applications -> HAgnostic News -> Options (les trois points en haut à droite) -> Désinstaller pour tous les utilisateurs
maxoumime
Voilà la solution!
kenpeter

Réponses:

133

Vous devez le désinstaller car vous utilisez une signature différente de l'original. Si cela ne fonctionne pas, cela peut être dû au fait qu'il est toujours installé pour un autre utilisateur sur l'appareil. Pour désinstaller complètement, allez dans Paramètres -> Applications -> HAgnostic News -> Options (les trois points en haut à droite) -> Désinstaller pour tous les utilisateurs

maxoumime
la source
2
La désinstallation ne fait rien. Cette erreur se produit même sur les appareils sur lesquels l'application n'est pas installée.
IgorGanapolsky
3
@maxoimime ce qui se passe lorsque vous publiez la nouvelle version sur Play Store. L'utilisateur doit-il désinstaller l'application avant d'installer la nouvelle version? Ou l'utilisateur pourra-t-il mettre à jour l'application sans problème?
Peter le
@maxoimime cette réponse fonctionne. Vous pouvez envisager de supprimer votre commentaire. C'est trompeur pour la plupart des utilisateurs
AL-zami
1
C'était aussi le problème pour moi. Il s'avère que mon application a également été installée dans le dossier sécurisé Samsung.
Roman
J'ai rencontré ce problème car, pour certaines raisons, certaines applications précédemment désinstallées étaient «non installées pour cet utilisateur». Mais je n'ai qu'un seul utilisateur sur mon téléphone. C'est bizarre
Rémi Rousselet
79

J'ai rencontré ce problème sur mon projet aussi.

Cela m'a aidé, donc j'espère aider quelqu'un d'autre:

adb uninstall "com.domain.yourapp"

La solution est d'ici.

jirimertine
la source
Bonne réponse, +1 pour sauver ma journée :)
Saeed
1
C'est la bonne réponse, car j'avais déjà désinstallé l'application du téléphone pour tous les utilisateurs, mais j'ai continué à recevoir la même erreur. Merci
Tarek K. Ajaj
1
Utilisateur Xamarin Forms ici. C'était la réponse pour moi. J'avais désinstallé l'application du téléphone, mais cela ne suffisait pas.
brunner
oui, cela fonctionne pour moi aussi, cela n'apparaît pas sur la liste des applications!
sl45sms
J'étais tellement sûr que c'était la bonne réponse que je l'ai votée avant même de l'essayer, et comme prévu, cela a fonctionné. Merci!
Jay Yoon
17

Si la version de l'application que vous avez installée n'a pas été créée avec le même fichier de clés / certificat de signature, elle aura une signature différente. Par défaut, chaque machine de construction aura un certificat de débogage différent, sauf si vous spécifiez comment il doit être signé selon la documentation Google , qui peut être utilisé pour garantir que votre application sera créée avec la même clé de débogage quel que soit l'ordinateur sur lequel vous créez l'application. sur.

Pour procéder à l'installation, vous devez désinstaller la version existante, puis réessayer.

Jake_
la source
14

Cela se produit lorsque vous avez installé une application avec différentes versions sur votre téléphone mobile / émulateur.

Il suffit de désinstaller l'application existante pour résoudre le problème

Muhammad Ashfaq
la source
10

Cela se produit principalement lorsque la version de l'application de Google Play Store est installée sur le téléphone. Vous pouvez créer le code avec le même fichier de clés / certificat que vous avez utilisé pour votre version de production, ou simplement le désinstaller du téléphone et le créer avec votre fichier de clés / certificat de débogage

COMME
la source
Je suis confronté au même problème que celui mentionné dans la question. Pouvez-vous s'il vous plaît me faire savoir comment puis-je créer le code avec un keystore / certificat antérieur? Mon client m'a fourni le fichier keystore mais je ne sais pas comment puis-je construire mon android natif react avec le fichier keystore fourni par mon client.
Yousaf Iqbal
Je n'ai pas fait Android depuis un certain temps maintenant, mais selon ceci: developer.android.com/studio/publish/app-signing#sign_release , vous devriez aller à Build> Generate Signed Bundle / APK, et sous le 'Key store path 'champ, appuyez sur « Choisissez existant ... »
AS
6

com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: échec de finalisation de la session: INSTALL_FAILED_UPDATE_INCOMPATIBLE: les signatures du package [MY REACT NATIVE APP NAME ICI] ne correspondent pas à la version précédemment installée; ignorant!

J'ai eu cette erreur en essayant d'installer mon application React Native Android sur un appareil connecté à l'aide de cette commande:

react-native run-android --variant=release

J'avais également un émulateur en cours d'exécution sur mon ordinateur.

Une fois que j'ai quitté l'émulateur , l'exécution de cette commande a réussi.

Beau Smith
la source
6

Aujourd'hui, j'ai rencontré le même problème sur mon appareil Samsung. Dans mon cas particulier, l'application n'apparaissait PAS sur le téléphone mais elle a été INSTALLÉE , je ne pouvais donc pas la désinstaller / la supprimer . J'ai donc dû désinstaller l'application à l'aide du terminal : $ adb uninstall "com.domain.yourapp" mon arborescence de projet ressemble à ceci (vue partielle):

└── com
    └── gluonapplication
        ├── DrawerManager.java
        ├── StartApplication.java
        └── views
            ├── PrimaryPresenter.java
            ├── PrimaryView.java
            ├── SecondaryPresenter.java
            └── SecondaryView.java

Donc pour moi, la commande était: $ adb uninstall com.gluonapplication Une fois faite, j'ai installé l'application via le terminal:

$ cd /path/to/apk/
$ adb install -t myAwesomeApp.apk  # -t means test install

C'est ce qui a fonctionné pour moi. J'espère que cette réponse est utile.

Qazi Fahim Farhan
la source
5

Si vous essayez de l'installer dans un émulateur mais que vous avez un autre téléphone connecté à l'ordinateur via USB, débranchez le câble USB ou désactivez le débogage USB sur le périphérique physique. (J'ai gaspillé 30 minutes dessus moi-même.)

waliurjs
la source
1
C'était mon problème. J'avais mon téléphone connecté à mon ordinateur pour charger et j'essayais de fonctionner dans un émulateur.
user3486427
3

J'ai eu la même erreur. J'ai désinstallé l'application sur mon appareil virtuel et réexécuté la commande: 'react-native run-android'.

Wiezalditzijn
la source
1

J'ai le même problème, il fonctionnait bien dans AVD, mais dans mon téléphone n'était pas ok. J'ai désinstallé l'application sur mon téléphone, puis cela fonctionne correctement.

Rafael Ramon
la source
1

Cette erreur m'est arrivée lors du téléchargement d'une version précédente de mon simulateur / téléphone avec des informations d'identification différentes. Ce que je devais faire était de courir:

adb uninstall com.exampleappname

Une fois que j'ai fait cela, j'ai pu réexécuter la construction et générer un APK.

Ariel Salem
la source
0

Vous devez le désinstaller car vous utilisez une signature différente de l'original. S'il ne fonctionne pas, c'est peut-être parce qu'il est toujours installé pour un autre utilisateur sur l'appareil. Pour désinstaller complètement, allez dans Paramètres -> Applications -> (application spécifique) -> Options (les trois points en haut à droite) -> Désinstaller pour tous les utilisateurs.

J'ai également ce problème lorsque l'application ionique déjà installée (même nom de package) est supprimée de mon téléphone après que cela fonctionne parfaitement.

Mahendren
la source
0

J'ai eu ce problème sur un appareil Samsung, la désinstallation de l'application a donné le même message. Le problème était que l'application était également installée dans la zone "Dossier sécurisé" du téléphone. Cela vaut la peine de vérifier si tel est votre scénario.

Eliram
la source
0

Accédez au studio Android -> Gestionnaire AVD -> Sélectionnez votre AVD et effacez les données utilisateur

Pas besoin de réinstaller l'ensemble de l'AVD.

mingliang94
la source
0

vous devez désinstaller complètement pour les appareils LG en utilisant cmd adb uninstall packageName

v.Vinh
la source
ils répondent à cette question il y a 4 ans avec ce que vous suggérez
Gonzalo Garcia
0

Cela m'est arrivé dans un projet React Native lorsque je renommais l'ID de bundle d'une application, et cela s'est heurté à un autre ID de bundle que j'avais déjà utilisé auparavant. Je l'ai corrigé en effectuant une réinstallation:

  1. Recherchez l'application sur l'écran d'accueil du simulateur, puis appuyez longuement sur l'icône de son application et appuyez sur App info , puis choisissez "DÉSINSTALLER".

  2. Exécutez react-native run android.

Jamie Birch
la source
0

Cela se produit en raison de la disponibilité de la version précédente de l'application, qui n'est pas installée sur l'appareil mais ses données sont présentes dans la mémoire de l'appareil. Il ne parvient donc pas à mettre à niveau ces données d'application désinstallées sur l'appareil

Essaye ça :

Allez dans Paramètres de l' appareil ==> Applications (toutes les applications) ==> recherchez votre application OU recherchez `` client '' ==> Dans l' écran d' informations de l'application , appuyez sur l' option trois points dans le coin supérieur droit ==> sélectionnez `` Désinstaller pour tous les utilisateurs '==> une invite apparaît sélectionnez' OK '

Cela fonctionne pour moi à chaque fois que cette erreur se produit

Harshal Patil
la source
0

Dans mon cas, le problème était que j'avais installé une application avec le nom du package, disons com.example.package en utilisant Android Studio sur mon appareil. J'ai créé une autre application avec le même nom de package et j'essayais de l'installer sur mon appareil. C'est ce qui causait le problème. Vérifiez donc simplement sur votre appareil si une autre application avec le même nom de package existe déjà ou non.

ANUJ GUPTA
la source
-1

Dans mon cas, désinstaller l'application installée sur l'appareil connecté a résolu mon problème

Long Nguyen
la source
-5

Un seul émulateur ou appareil peut être ouvert à la fois. Assurez-vous que vous n'avez pas plusieurs émulateurs en cours d'exécution.

Plaimanus Lueondee
la source