Pourquoi le changement de signature de l'application dans Android après une classpath changer?
Question
J'ai un projet Android qui divisait en trois applications différentes, app-1
, app-2
et app-3
, qui appliquent certaines personnalisations. À l'heure actuelle, il y a beaucoup de duplication de code, ce qui rend l'entretien d'un cauchemar:. Faire les changements dans l'une des branches, puis fusionner les deux autres
Nous créons donc un projet de bibliothèque, du nom app-core
, qui factorise la plupart du code dupliquée. Jusqu'à présent, si bon.
Quand je lance ceci dans un émulateur où l'application a déjà été chargé (avant le refactoring), je reçois cette exception:
Re-installation failed due to different application signatures
Une signature différente? Mais je viens d'ajouter une ligne dans le .classpath
lier au projet app-core
Java!
La principale question est: sont les utilisateurs existants va être dérangé par cela aussi
?Et la question de côté: Pourquoi est-il une signature différente
La solution
La signature numérique est entraîné par une clé de signature qui existe sur la machine qui signe l'application. Si le développeur A compile une application utilisant la clé de débogage standard et il installe dans un émulateur, puis tente d'installer une autre variante de l'application - celui signé avec une clé de production, celui signé avec la clé de débogage du développeur B, etc. - dans le même émulateur, vous obtiendrez cette erreur.
La principale question est: sont EXISTANT les utilisateurs vont être dérangé par cette aussi?
Avez-vous la clé de signature de la production que vous avez utilisé pour la version de l'application de vos utilisateurs existants utilisent? Si oui, alors il devrait y avoir aucun problème. Si non, vous êtes foutus.
Autres conseils
Désinstaller l'application sur le périphérique, puis exécutez à nouveau code, cela fonctionnera. Il arrive pour moi et j'ai essayé même chose, maintenant il fonctionne correctement.
Pour ce problème u besoin de vérifier que la clé correcte est utilisée sous (build Fenêtre-> Préférences-> Android->). Ce u peut vérifier à partir du fichier android.mk de l'application. Et placer le chemin de la clé correcte, propre et Générez le projet pour éviter cette erreur.
J'ai eu le genre de problème similaire. Si vous installez sur votre appareil, vous devez désinstaller l'application sur votre appareil avant de l'installer à partir éclipse. Il va certainement résoudre votre problème.
Vive