Perché il cambiamento firma applicazione in Android, dopo un percorso di classe cambia?
Domanda
Ho un progetto Android che ramificata in tre diverse applicazioni, app-1
, app-2
e app-3
, che si applicano alcune personalizzazioni. Attualmente c'è un sacco di duplicazione del codice, rendendo la manutenzione un incubo:. Fare i cambiamenti di uno dei rami, e poi unire gli altri due
Quindi creiamo un progetto di libreria, denominato app-core
, che fattori fuori la maggior parte del codice duplicato. Fin qui tutto bene.
Quando lancio questo in un emulatore in cui l'applicazione è stata già caricata (prima del refactoring), ottengo questa eccezione:
Re-installation failed due to different application signatures
Una firma diversa? Ma ho appena aggiunto una linea nella .classpath
per collegarsi al progetto Java app-core
!
La questione principale è: sono gli utenti esistenti sta per essere disturbati da questo troppo
?E la domanda lato:? Perché è una firma diversa
Soluzione
La firma digitale è azionato da una chiave di firma che esiste sulla macchina che firma l'app. Se gli sviluppatori Una compila un'applicazione utilizzando la chiave di debug di serie e lo installa in un emulatore, tenta quindi l'installazione di qualche altra variante della app - quello firmato con una chiave di produzione, quello firmato con la chiave di debug dello sviluppatore di B, ecc - in stesso emulatore, si otterrà tale errore.
La domanda principale è: sono le esistenti gli utenti di andare a essere disturbati da questo troppo?
Avete la chiave di firma di produzione che si è utilizzato per la versione dell'app utenti esistenti utilizzano? Se sì, allora non ci dovrebbero essere problemi. Se no, sei fregato.
Altri suggerimenti
Disinstallare l'applicazione sul dispositivo, quindi eseguire nuovamente il codice, funzionerà. Succede per me e ho provato stessa cosa, ora sta funzionando correttamente.
Per questo problema u necessità di verificare che la chiave corretta è utilizzato sotto (Finestra-> Preferenze> Android-> build). Questo u può controllare dal file android.mk dell'app. E sul posizionamento del percorso chiave corretta, pulita e costruire il progetto per evitare questo errore.
ho avuto il simile tipo di problema. Se si installa sul vostro dispositivo allora avete bisogno di disinstallare l'app sul dispositivo prima di installarlo da Eclipse. Sarà sicuramente risolvere il tuo problema.
Saluti