J'ai essayé de réinstaller un apk
$adb install -r new.apk
Et cela montre l'erreur:
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
Une solution consiste à désinstaller et installer le new.apk, qui fonctionne très bien.
Mais je me demande si je pourrais reconstruire un apk et réinstaller sans la désinstallation. Par exemple. changer une configuration dans AndroidManifest.xml, ou ne pas signer l'APK, etc.
Ce serait très apprécié si vous pouviez me dire tout le sens des "INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES".
Réponses:
Cela signifie que la nouvelle copie de votre application (sur votre machine de développement) a été signée avec une clé de signature différente de l'ancienne copie de votre application (installée sur l'appareil / l'émulateur). Par exemple, s'il s'agit d'un périphérique, vous pouvez avoir mis l'ancienne copie à partir d'une machine de développement différente (par exemple, une autre machine de développeur). Ou, l'ancien est signé avec votre clé de production et le nouveau est signé avec votre clé de débogage.
la source
debug.keystore
) sur votre nouvelle machine.debug.keystore
n'est pas dans votre répertoire de projet. Il se trouve normalement dans votre~/.android/
répertoire. (voir developer.android.com/guide/publishing/… )debug.keystore
). Choisissez-en un pour être votre magasin de clés maître, copiez-le sur toutes les autres machines de développement, en remplaçant leur magasin de clés existant.debug.keystore
). Une fois que j'ai reconstruit le projet (en utilisant Build-> Rebuild dans Android Studio), les clés étaient alors synchronisées.Je suis tombé sur cela lors d'un test sur un nouveau Xoom. J'avais déjà installé mon application sur la Marketplace. Plus tard, en essayant de tester une nouvelle version de l'application, j'ai rencontré cette erreur.
Je l'ai corrigé en supprimant l'application installée via Marketplace (maintenez et faites glisser vers la corbeille). Par la suite, j'ai pu déployer ma version de développement sans aucun problème.
la source
Cela m'est arrivé lorsqu'un autre développeur de l'équipe a construit notre application sur le périphérique matériel sur lequel j'essayais de déployer. La désinstallation de l'application du matériel a résolu mon problème.
la source
adb uninstall <package name>
. Merci.Il s'agit de la commande pour désinstaller l'application de l'appareil en utilisant adb:
la source
J'ai eu cette erreur même après avoir désinstallé l'APK d'origine, ce qui était mystifiant. Enfin, j'ai réalisé que j'avais configuré plusieurs utilisateurs sur mon Nexus 7 pour les tests et que l'application était toujours installée pour l'un des autres utilisateurs. Une fois que je l'ai désinstallé pour tous les utilisateurs, l'erreur a disparu.
la source
J'ai changé le nom du package lors du codage d'une mise à jour afin de pouvoir la déboguer sur mon appareil via Eclipse, sans supprimer l'ancienne version installée. Sans revenir au nom du package que j'utilisais lors de la réinstallation, j'ai eu la même erreur. En utilisant le même nom de package, la réinstallation a réussi.
la source
Supprimez simplement l'ancienne version de l'appareil et réinstallez-la. Parce que device.keystore existe déjà dans l'appareil, il vous suffit donc de désinstaller la build et de réinstaller l'APK c'est tout.
Merci
la source
J'ai fait face à un autre cas d'utilisation où j'ai eu l'erreur similaire. Quand j'ai eu l'erreur au début, j'ai paniqué et
/data/data/{package.name}
j'ai supprimé. Après cela, j'ai essayé et mon problème était toujours présent. Ensuite, j'ai essayé de désinstaller, cela a échoué.J'ai ensuite supprimé le fichier apk présent dans
/system/app
(accès root requis), et j'ai essayé de désinstaller et c'était réussi.Après cela, j'ai essayé de réinstaller l'apk, cela a fonctionné.
la source
Pour ce que ça vaut, j'ai rencontré ce problème après avoir ajouté un nouveau plugin à mon projet Cordova. J'avais fait cordova faire des builds et installer directement sur l'appareil via USB.
Je l'ai corrigé en désinstallant l'application de l'appareil et lors du déploiement suivant, il n'y a eu aucun problème.
la source
Si vous rencontrez un échec de déploiement sur un appareil ou un émulateur Andorid avec l'erreur «Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]» dans la fenêtre de sortie, supprimez simplement l'application existante sur l'appareil ou l'émulateur et redéployez. Les versions de débogage utiliseront un certificat de débogage tandis que les versions de version utiliseront votre certificat configuré. Cette erreur vous indique simplement que le certificat de l'application installée sur l'appareil est différent de celui que vous essayez d'installer. Dans les scénarios de non-développement (App Store), cela peut être un indicateur d'une application corrompue ou modifiée d'une autre manière qui n'est pas sûre à installer sur l'appareil.
la source
Rien d'en haut n'a fonctionné pour moi. Le problème pour moi était que j'avais une mauvaise source dans mon Java Build Path pour android-support-v7-appcompat. Lorsque vous accédez à Projet> Chemin de génération> Configurer le chemin de génération>. Sous l'onglet Source, assurez-vous d'avoir android-support-v7-appcompat / gen, android-support-v7-appcompat / libs et android-support-v7-appcompat / src et rien d'autre. Cliquez sur OK et cela devrait fonctionner.
la source
J'ai eu la même erreur aujourd'hui, mais le problème n'était pas exactement le même. J'utilise ADB avec Android installé dans VirtualBox . J'ai essayé d'installer différentes versions de mon application (signé / non signé, mode débogage / libération) et j'ai obtenu deux erreurs alternativement:
INSTALL_FAILED_UID_CHANGED
etINSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES
.Maintenant, en regardant
/data/data/{package.name}
, j'ai trouvé un tas de fichiers qui étaient toujours là après la désinstallation de l'application. J'ai essayérm -rf
sans succès: j'ai eu des erreurs d'E / S.La solution à cela était:
vdfuse
(lecture / écriture)Partition1
fichier image avece2fsck
la source
J'ai eu le même problème jusqu'à ce que je réalise que le simulateur était en marche et qu'Adb essayait de l'installer sur ce
la source
Étant donné que la vérification est basée sur le nom du package, vous pouvez modifier le nom du package dans votre fichier config.xml ou manifeste pour un autre nom que vous souhaitez.
Lors de la publication de votre application, n'oubliez pas de changer le nom!
la source
J'ai eu ce problème en essayant d'exécuter une tâche gradle
connectedDebugAndoidTest
(ouconnectedAndroidTest
) sur Genymotion . L'exécuter sur un émulateur normal a résolu le problème.la source
Je pense que votre application est installée par un autre compte. (Fonctionnalité en mode compte multiple) Vous pouvez désinstaller l'application dans Paramètres> Applications> "nom de l'application"> Désinstaller
la source