web-dev-qa-db-fra.com

INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES lors de l'installation d'Adb

Le même Android est construit en mode débogage, parfois avec Eclipse, parfois avec ant (sur la machine de build).

Si j'installe d'abord la version ant, puis essaie de démarrer le débogage Eclipse, la console Eclipse affiche

[2012-03-20 13:32:26 - myproject] La réinstallation a échoué en raison de différentes signatures d'application. [2012-03-20 13:32:26 - myproject] Vous devez effectuer une désinstallation complète de l'application. AVERTISSEMENT: cela supprimera les données de l'application!
[2012-03-20 13:32:26 - myproject] Veuillez exécuter 'adb uninstall com.myproject' dans un shell. [2012-03-20 13:32:26 - myproject] Lancement annulé!

Si je fais cela dans l'autre sens, c'est-à-dire, débogue avec Eclipse (inclut l'installation de l'apk) et essaie ensuite d'installer la construction ant à partir de la ligne de commande, j'obtiens:

Échec [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]

Quel est le problème avec mes certificats/signature?

30
Juuso Ohtonen

Le problème est que les fichiers apk (lors de la construction d'Eclipse et de la fourmi) ont été signés avec différents certificats . Pour rendre les signatures cohérentes entre les builds qui ont été construites sur différentes machines, placez le magasin de clés de débogage dans le contrôle de version:

Ceci est pratique si vous avez tendance à effectuer une installation croisée de builds à partir de votre propre machine et de build machine.

17
Juuso Ohtonen

Pour moi, le problème était que j'avais la même application déjà installée avec une autre clé. La désinstallation de l'ancienne application a résolu le problème, comme indiqué ici:

https://stackoverflow.com/a/10280878

48
f.cipriani

L'ancien .apk installé a un certificat différent du nouveau qui va être installé ou il est déjà installé sur votre appareil avec une clé différente. Cela signifie que votre application a été précédemment installée à partir d'une machine différente qui lui a donné des informations d'identification différentes.

La solution est donc:

uninstall the existing .apk

puis

re-install the new .apk

28
Sonhja

Si votre système de construction est gradle, utilisez simplement la commande follwong pour le désinstaller dans Windows:

.\gradlew.bat uninstallDebug

ou sous Linux:

./gradlew uninstallDebug

Puis:

./gradlew install

Il s'agit d'une vérification de certification pour l'installation et la désinstallation sur le même package dans Android. Si vous utilisez deux PC de construction différents (ordinateur) connectés au même téléphone, vous obtiendrez cette erreur lorsque vous connecterez votre téléphone à ces différents PC. Le meilleur choix est de lier un PC à un téléphone physique.

2
Clock ZHONG

Dans IntelliJ, bien que vous puissiez sélectionner un fichier de clés de débogage pour la signature de débogage de vos applications, vous ne pouvez pas entrer de mot de passe ou de mot de passe de fichier de clés. Vous pouvez exporter vos certificats de version et les importer dans votre magasin de clés de débogage et changer le magasin de clés et les mots de passe clés en "Android". J'ai préparé des instructions étape par étape: http://www.denizoguz.com/2013/01/12/failure-install_parse_failed_inconsistent_certificates/

1
Deniz

Ouvrez les préférences d'Eclipse. Ouvrez la section Android dans la liste de gauche. Sélectionnez la zone "Créer" sous Android À côté de "Magasin de débogage personnalisé", accédez au magasin de clés sous votre Android instalation SDK, PAS celui qu'Eclipse a sélectionné sous votre répertoire personnel.

Maintenant, le Android ant build et Eclipse utilisent le même keystore.

1
Andrew Mackenzie