2012-02-20 2 views
1

Je reçois le message d'erreur ci-dessus lorsque j'essaie de déboguer une application déjà installée. La plupart des autres utilisateurs semblent développer sur des machines différentes avec des fichiers clés différents, mais je fais tout sur la même boîte.La réinstallation a échoué en raison de signatures d'application différentes

Mon problème est que je suis en train de tester le processus de mise à niveau de ma base de données (c'est-à-dire la méthode onUpgrade() de mon extension SQLiteOpenHelper). Pour cela, je voudrais essayer la mise à niveau en plus d'une variété de versions plus anciennes. Ces versions sont disponibles en tant que packages d'application signés. Lorsque je déployer un tel package sur un nouvel émulateur et ensuite essayer de déboguer la version actuelle sur le dessus, j'obtiens l'erreur dans la ligne d'objet. Je pense que c'est parce que les paquets de déploiement de débogage sont non signés, et le paquet actuellement installé est signé. Encore une fois, je sais que l'erreur disparaît si je désinstalle l'application actuellement installée, mais je ne peux pas tester la mise à jour.

Je ne veux pas faire l'effort de retourner mon environnement de développement à des versions plus anciennes, afin de pouvoir construire des paquets non signés pour ces versions. Je ne peux même pas être en mesure de le faire, parce que j'ai changé de référentiels de code source récemment et a perdu une partie de l'histoire.

Je crois que si je pouvais obtenir Eclipse pour générer un paquet signé pour le débogage, cela devrait fonctionner. Alternativement, je pourrais déployer manuellement un paquet signé et lancer une session de débogage sans une étape de construction/déploiement, mais je n'ai pas été de savoir si c'était possible non plus. Que puis-je faire?

Modifier: Le Android documentation a été utile pour déterminer comment signer un paquet avec la clé de débogage, mais cela ne m'aide pas, car j'ai besoin de déboguer avec une clé privée. Je suppose que ce n'est pas possible.

+0

vous devez les générer tous avec une signature - sinon il ne fonctionnera pas. seulement la désinstallation et l'installation fraîche fonctionnera avec différentes signatures. http://developer.android.com/guide/publishing/app-signing.html –

Répondre

3

Vous pouvez signer le package actuel avec la clé de version, l'installer sur le périphérique, exécuter l'application et connecter le débogueur dans Eclipse. Comment connecter débogueur: dans la perspective DDMS sur les périphériques voir sélectionner l'application et le bouton de presse avec « bug vert »:

enter image description here

+0

parfait parfait. le seul problème est que mon application ferme la force quand elle commence (et une ancienne base de données est présente). avec un clic rapide, j'ai pu entrer dans un point d'arrêt, cependant. Merci. – cdonner

1

Je vais le poster comme une réponse:

Vous devez les générer tous avec une signature - sinon il ne fonctionnera pas. seulement la désinstallation et l'installation fraîche fonctionnera avec différentes signatures. http://developer.android.com/guide/publishing/app-signing.html également pris à partir de là:

utilisateurs Eclipse Si vous développez dans Eclipse/ADT (et ont mis en place Keytool et JarSigner comme décrit ci-dessus dans la configuration de base pour la signature), la signature en mode débogage est activé par défaut . Lorsque vous exécutez ou déboguez votre application, ADT signe le .apk avec le certificat de débogage, exécute zipalign sur le package, puis l'installe sur l'émulateur ou périphérique connecté sélectionné. Aucune action spécifique de votre part n'est nécessaire, à condition qu'ADT ait accès à Keytool.

+0

Sergey, je l'ai compris, mais je ne peux pas démissionner mes anciens paquets avec la clé de débogage, je ne peux pas non plus les recréer. On dirait que je n'ai pas de chance et devra trouver la raison pour laquelle ma mise à niveau échoue sans l'aide du débogueur. – cdonner

+0

@cdonner vous pouvez utiliser la ligne de commande 'adb shell' puis tapez' logcat' et voir où cela échoue aussi –

Questions connexes