L'application Android n'est pas installée. Un package existant du même nom avec une signature en conflit est déjà installé

131

Dans mon émulateur, lorsque j'essaye de faire une mise à jour de mon apk par programmation. Je reçois:

Android App Not Install.

An existing package by the same name with a conflicting signature is already installed

entrez la description de l'image ici

Je suis toujours en phase de test de cette mise à niveau, donc le fichier que je télécharge est un apk signé d'une version précédente, qui, je pense, devrait fonctionner sans aucun problème.

De la suggestion dans: un paquet existant du même nom avec une signature de configuration est déjà installé J'ai essayé d'exécuter l'émulateur à la fois en mode débogage et en mode normal ... ni fonctionné.

Des pensées sur ce qui me manque?

James Oravec
la source
1
utiliser la même signature pour signer l'apk avant l'installation
Praveen Sharma
Ce problème est généré en raison d'une incompatibilité de signature ou de fichier de stockage de clés, recherchez le lien pour la solution: readyandroid.wordpress.com/…
Prêt pour Android

Réponses:

97

Le problème, ce sont les clés qui ont été utilisées pour signer les APK, par défaut si vous exécutez directement depuis votre IDE et ouvrez votre émulateur, l'APK installé dans l'émulateur est signé avec votre clé de débogage (généralement installée dans ~ / .android /debug.keystore), donc si l'APK précédent a été signé avec une clé différente de celle que vous utilisez actuellement, vous obtiendrez toujours le conflit de signatures, afin de le résoudre, assurez-vous que vous utilisez la même clé pour signer les deux fichiers APK, même si le fichier APK précédent était signé avec une clé de débogage d'un autre SDK, les clés seront certainement différentes.

De plus, si vous ne savez pas exactement quelle clé a été utilisée auparavant pour signer l'apk et que vous souhaitez installer la nouvelle version de votre application, vous pouvez simplement désinstaller l'application précédente et réinstaller la nouvelle.

J'espère que cela t'aides...

Cordialement!

Martin Cazares
la source
Je vais faire un non-dev signer l'apk et faire un téléchargement / installation manuel dans l'émulateur. L'émulateur doit ensuite télécharger l'autre apk non signé par le développeur et essayer de faire la mise à niveau. Si cela fonctionne, j'accepterai votre réponse. Thx
James Oravec
@MartinCazares existe-t-il de toute façon pour obtenir la clé apk? pour ne pas perdre mes données d'application?
heisenberg
Eh bien, si vous avez installé l'application, vous devriez avoir la clé, sinon comment signeriez-vous l'apk? Si l'apk précédent n'a pas été créé par vous, vous devez demander au développeur de cet apk la clé, à part cela, il n'y a aucun moyen d'obtenir la clé qui a été utilisée pour signer un apk ...
Martin Cazares
Merci beaucoup pour ça! Vous avez sauvé ma journée et mon équipe! Haha
perozzo
1
J'ai une application en LIVE dans le Playstore, maintenant j'ai gardé installé cette application dans l'appareil de test et maintenant Pour mettre à jour la nouvelle version de l'application, je mets à jour "versionno" et "versionname" dans le fichier app build.gradle. Maintenant, j'ai fait une version de version avec une clé signée, maintenant pendant que j'essaye d'installer cette construction à travers une erreur ::: Un pacakage existant du même nom avec une signature en conflit est déjà installé. Et ne pas être installé aussi. Aide aimablement .
Tarit Ray
195

J'ai eu le même message d'erreur, mais ces réponses n'ont pas aidé. Sur un Nexus 7 4.3, j'utilisais un utilisateur qui n'était PAS le propriétaire. J'avais désinstallé l'ancienne version mais je continuais à recevoir le même message.

Solution: je devais me connecter en tant que propriétaire et aller dans Paramètres -> Applications, puis glisser vers l'onglet Tous. Faites défiler jusqu'à la toute fin de la liste où les anciennes versions sont répertoriées avec une marque «non installé». Sélectionnez-le et appuyez sur le bouton «Paramètres» dans le coin supérieur droit et enfin «Désinstaller pour tous les utilisateurs»

Αλέκος
la source
2
J'ai dû passer de "Téléchargé" à la liste "Tous" pour le trouver dans la liste des applications.
ShawnFeatherly
1
Comme vous le mentionnez, assurez-vous de faire défiler jusqu'en bas - les applications «non installées» ne sont pas répertoriées par ordre alphabétique.
jmcmann
3
MERCI!!! C'était aussi mon problème après avoir prêté mon test Nexus 7 à un ami. Je pensais que mes clés étaient corrompues ... J'ai supprimé cet utilisateur juste pour réduire la confusion future.
mm2001
1
J'ai sauvé mon temps. Gloire.
Piyush Patel
2
Merci. J'ai dû me connecter dans tous les utilisateurs et désinstaller 1 par 1.
Ricardo
8
 Go to Settings > Apps, find and open the app info. Then, open the overflow menu (3 vertical dots), and choose Uninstall for all users.

entrez la description de l'image ici

Accédez à Paramètres> Applications, recherchez et ouvrez les informations de l'application. Ensuite, ouvrez le menu à débordement (3 points verticaux) et choisissez Désinstaller pour tous les utilisateurs.

Keshav Gera
la source
Cela m'a aidé - merci. Pour une raison quelconque, deux versions de mon application y apparaissaient même après l'avoir désinstallée via mon écran d'accueil.
Joro Tenev
Merci Joro Tenev de me voter
Keshav Gera
5

Il existe une différence entre les fichiers APK signés et non signés. Il est fort probable que vous y aviez déjà un non signé. Il vous suffit de supprimer le non signé avant d'installer la version signée. La façon dont cela peut être accompli varie selon la version exacte, mais en général, allez sur l'émulateur dans paramètres-> application, cliquez longuement sur votre application et supprimez / supprimez / désinstallez-la.

PearsonArtPhoto
la source
Je vais créer un apk non signé et télécharger l'apk non signé et voir si cela le résout, si c'est le cas, je peux tester les apks signés avec du matériel. J'accepterai la réponse si tel est le cas.
James Oravec
J'essaie de faire la mise à niveau à partir de mon programme, donc la désinstallation / installation manuelle ne fonctionnera pas.
James Oravec
Lorsque j'ai installé l'application non signée, je reçois simplement app not installed. J'ai vérifié les paramètres de l'émulateur et cela a été Allow installation of apps from unknown sourcesvérifié. Cela ne semble donc pas être la solution.
James Oravec
vous donnant un vote pour les suggestions. Je pense que cela nous a aidés à trouver la solution finale. Merci!
James Oravec
5

Si vous utilisez l'apk de débogage, la clé utilisée pour le connecter est

C:\Users\<user>\.android\debug.keystore

Si vous utilisez cette même clé, il ne devrait pas y avoir de conflit lors de l'installation.

Santiago
la source
Merci beaucoup Santiago, le jour dernier, j'ai changé le disque dur de ma machine du lecteur mécanique au lecteur à semi-conducteurs, donc je dois mettre à niveau mon Windows, j'étais confronté au même problème, puis j'ai copié le fichier debug.keystore du dossier Windows précédent vers le nouveau dossier Windows le problème est résolu :)
Arslan Sohail
Merci pour la réponse, car cela a résolu mon problème, je programme avec un ami et nous avons eu ce problème fréquemment, maintenant que nous partageons la clé de débogage, tout va bien.
Gustavo Magalhães
5

Si les solutions ci-dessus n'ont pas fonctionné pour vous, vous devrez peut-être faire quelque chose comme suit.

1) installer l'application depuis l'Appstore.
2) le mettre à jour avec le signe APK avec la même version mise à jour du nom du package.

Donc, fondamentalement, il existe deux types de fichiers APK.

1) vous avez téléchargé sur Playstore connu sous le nom d'APK d'origine.
2) télécharger depuis Playstore connu sous le nom d'APK dérivé.

Dans ce cas, vous téléchargez un apk dérivé et le mettez à jour avec l'APK d'origine.

Pour que ça fonctionne correctement, téléchargez le nouvel APK publié signé en mode de test interne sur le Google Play Store et téléchargez l'APK dérivé pour vérifier le scénario de mise à jour.

entrez la description de l'image ici

Wahab Khan Jadon
la source
2

Si vous utilisez plusieurs utilisateurs sur Android, vérifiez que l'application est désinstallée partout.

Martin Koubek
la source
Très similaire à la réponse populaire stackoverflow.com/a/20084044/4136325 ci-dessus, ne pensez-vous pas?
Thomas Weller
1
oui, c'est l'astuce - désinstallation de l'application pour tous les utilisateurs
Martin Koubek
1

J'ai eu un problème où le débogage et la version de version ne s'installaient pas sur les appareils que j'ai utilisés pour le débogage. Le même message apparaîtrait lors de la tentative d'installation de la nouvelle version. La seule solution de contournement était de désinstaller la version actuelle et d'installer la nouvelle.

Il semble que le studio Android marque l'apk qu'il installe afin que l'installation à l'aide des gestionnaires de packages fasse la distinction entre la version installée pour le débogage et les versions téléchargées à partir de Google Play ou d'autres sources externes (cela ne m'est jamais arrivé lors de l'utilisation d'éclipse).

FunkSoulFrère
la source
1

Il se peut que l'application ne soit pas désinstallée correctement. Si votre appareil est ce cas, vous pouvez essayer cette méthode.

Commencez par obtenir le nom du package de l'application, par exemple 'com.xxx.app', vous pouvez utiliser Root Explorer et le trouver à partir du fichier Manifest (RE peut décoder le fichier). alors vous pouvez utiliser ce script pour le désinstaller:

adb shell pm uninstall com.xxx.app // replace to package name that you want to remove
deux fois Yuan
la source
1

Même erreur de package:

  1. Créez un nouveau package dans votre application avec un nom différent.
  2. Copiez et collez tous les fichiers de votre ancien package dans le nouveau package.
  3. Enregistrer le code.
  4. Supprimez l'ancien package et nettoyez et reconstruisez le projet.
VIJAY RAVAL
la source
1. Très 2. court 3. pourrait 4. utiliser 5. l'explication.
Yunnosch
1

entrez la description de l'image iciJe devais me connecter en tant que propriétaire et aller dans Paramètres -> Applications, puis glisser vers l'onglet Tous. Faites défiler jusqu'à la toute fin de la liste où les anciennes versions sont répertoriées avec une marque «non installé». Sélectionnez-le et appuyez sur le bouton «Paramètres» dans le coin supérieur droit et enfin «Désinstaller pour tous les utilisateurs»

Ashish Kumar
la source
Cela a fonctionné pour moi, mais ... maintenant, lors du téléchargement depuis mon site Web, l'application ne se télécharge pas (au moins dans le dossier de téléchargement). Aucune erreur signalée. Cela n'arrive tout simplement pas. Lorsque je branche mon téléphone sur mon ordinateur, je peux copier l'APK sur le téléphone et l'installer sans signaler aucune erreur.
Ron
0

Il peut y avoir une autre raison pour laquelle votre application ne sera pas mise à jour lorsque vous modifiez / ajoutez / supprimez shareId dans AndroidManifiest.

"android: sharedUserId"

Veuillez vérifier cela également.

Pour éviter je recommanderais d'utiliser sharedUserId dans votre application malgré vos besoins actuels ou maintenant.

Pawan Maheshwari
la source
0

J'ai essayé tout ce qui précède et cela n'a pas fonctionné.

J'ai constaté que malgré la désinstallation de l'application, une nouvelle version de l'application donne toujours la même erreur.

C'est ce qui l'a résolu: allez dans Paramètres -> Général -> Gestionnaire d'applications -> choisissez votre application -> cliquez sur les trois points en haut -> désinstallez pour tous les utilisateurs

Une fois que vous avez fait cela, il est désormais désinstallé et permettra désormais à votre nouvelle version de s'installer.

J'espère que cela t'aides.

FélixFelicis
la source