Warum funktioniert die App Signatur Änderung in Android nach einem Classpath ändern?
Frage
Ich habe ein Android-Projekt, dass in drei verschiedenen Anwendungen verzweigt, app-1
, app-2
und app-3
, dass einige Anpassungen gelten. Derzeit gibt es eine Menge von Code-Duplizierung, Wartung einen Alptraum machen. In einem der Zweige um die Änderungen zu tun, und dann verschmelzen die beiden anderen
So schaffen wir ein Bibliotheksprojekt, mit dem Namen app-core
, dass Faktoren aus den meisten der duplizierten Code. So weit so gut.
Wenn ich starte diese in ein Emulator, wo die Anwendung bereits geladen wurde (vor dem Refactoring), habe ich diese Ausnahme erhalten:
Re-installation failed due to different application signatures
Eine andere Signatur? Aber ich nur eine Zeile in dem .classpath
zu Link zu dem app-core
Java-Projekt hinzugefügt!
Die wichtigste Frage ist: werden die vorhandenen Benutzer auch durch diese gestört werden
?Und die Seite Frage: Warum ist es eine andere Signatur
Lösung
Die digitale Signatur wird durch einen Signaturschlüssel angetrieben, dass der App der Zeichen, die auf der Maschine vorhanden ist. Wenn Entwickler A Taste eine App mit der Standard-Debug kompiliert und installiert es in einem Emulator, versucht dann, eine andere Variante der App zu installieren - einen mit einem Produktions Schlüssel signiert, eines mit Entwickler B Debug-Schlüssel signiert, usw. - in dem gleicher Emulator, werden Sie diesen Fehler erhalten.
Die wichtigste Frage ist: Sind die bestehenden Benutzer gehen durch diese gestört werden auch?
Haben Sie die Produktion Signaturschlüssel haben, dass Sie für die Version der App verwendet, um Ihre vorhandenen Benutzer verwenden? Wenn ja, dann sollte es kein Problem sein. Wenn nein, sind Sie geschraubt.
Andere Tipps
Deinstallieren Sie die Anwendung auf dem Gerät, dann wieder laufen Code, wird es funktionieren. Es passiert, für mich und ich versuchte gleiche Sache, jetzt ist es richtig funktioniert.
Für dieses Problem u müssen prüfen, ob der richtige Schlüssel unter verwendet wird (Window-> Einstellungen-> Android-> build). Dies kann u aus der android.mk Datei des App überprüfen. Und auf den richtigen Schlüssel Pfad platzieren, sauber und BUILD das Projekt um diesen Fehler zu vermeiden.
Ich habe die ähnliche Art von Problem hat. Wenn Sie es auf Ihrem Gerät installieren, dann müssen Sie vor der Anwendung auf Ihrem Gerät deinstallieren es von Eclipse zu installieren. Es wird auf jeden Fall Ihr Problem lösen.
Prost