2010-03-25 16 views
41

Recentemente ho caricato la mia domanda di mercato di Android però è rifiutato di eseguire quando scaricato a causa dell'errorePubblicato apk Android dà l'errore "File pacchetto non è stato firmato correttamente"

file di pacchetto non è stato firmato correttamente

Ho prima pubblicato il pacchetto utilizzando eclipse, facendo clic con il pulsante destro del mouse sull'esportazione, creando un keystore quindi pubblicandolo, ma si rifiuta di funzionare.

Ho quindi scaricato keytool e jarsigner e li ho utilizzati per firmare un aggiornamento che ho pubblicato invece. Tuttavia questo dà lo stesso errore.

Non ho idea di cosa ho fatto di sbagliato, e dal momento che non posso cancellare l'applicazione non posso provare a ricominciare da capo qualcuno può aiutarmi?

Grazie

+0

Hrm, ho fatto questo, ma ora sto ottenendo un errore "Aggiornamento non compatibile", invece. o_0 –

+1

Sebbene la risposta accettata sia probabilmente corretta per il tuo caso, non è l'unica. Controlla cosa ha detto Melloware, è stato questo a risolvere il mio problema. Davvero l'SDK 1.7 non funziona! Usa quello vecchio, a meno che qualcuno da qualche parte risolva questo problema. – zmilojko

risposta

53

È probabile che la copia di debug sia ancora installata sul dispositivo. Ora hai scaricato una copia diversa della stessa app e sta causando questo errore.

Disinstallare completamente l'app dal dispositivo. Quindi scaricalo nuovamente dal mercato e dovrebbe funzionare.

+1

Non è possibile avere due istanze di un'app sullo stesso dispositivo. Se avesse eseguito la copia di debug con lo stesso numero di versione, avrebbe dovuto disinstallarlo prima che potesse persino scaricarlo. L'installazione di una versione superiore su una versione di debug potrebbe essere il colpevole. – jqpubliq

+0

Per me è stato cancellato i dati dell'app (dalle impostazioni) che hanno risolto il problema. –

+0

Dove sono i dati delle app (dalle impostazioni)? Al telefono? Sul computer? – theJerm

1

Questo errore si verifica perché si sta tentando di spingere un aggiornamento che è stato firmato con una chiave diversa da quello utilizzato nella presentazione iniziale. Devi trovare la chiave che hai usato la prima volta che hai pubblicato l'applicazione e usarla per firmare l'aggiornamento.

+3

L'errore a cui ci si riferisce è l'errore che si ottiene quando si carica sul mercato. Sta riscontrando un errore quando tenta di eseguire l'app. –

+1

Nel mio caso è stato perché ho iniziato accidentalmente a firmare la mia app con il keytool JDK7 che al mercato non deve piacere. Tornando allo strumento Keytool, questo problema si è risolto. – Melloware

23

OK Ho avuto questo stesso problema e nessuna delle risoluzioni suggerite lavorato per me. Stavo firmando la mia app nello stesso modo in cui sono stato per 2 anni e Android Market lo stava accettando, solo gli utenti non potevano scaricarlo dal Market con l'errore "Package Not Signed".

Quello che si è rivelato era per un altro progetto su cui sto lavorando. Ho installato JDK7. È diventato il JDK predefinito e per qualche motivo il keytool per JDK7 sta firmando il pacchetto in un modo che Android non deve piacere. Così sono tornato a JDK 1.6.0_23 e ho ripetuto la mia build e l'ho messa sul Market e tutto è tornato alla normalità.

Spero che questo aiuti qualcun altro.

+0

Aveva lo stesso problema. Questo era il colpevole (nel mio caso, comunque)! Mi chiedo cosa sia cambiato in JDK7 per non avere il suo keytool incompatibile con JDK6 del genere ... – Santa

+0

Ho aggiunto una nuova risposta per la firma di APK con JDK7 –

+0

Melloware anch'io sto affrontando lo stesso problema. E penso che la soluzione che hai dato della ricostruzione dell'app usando 1.6 sia completamente corretta. Ma sto usando Unix. Come posso specificare che l'app dovrebbe creare usando la versione 1.6. Costruisco app usando i comandi eseguiti sul terminale. –

4

C'è un problema durante la firma di APK con JDK7. È possibile risolverlo aggiungendo questo per build.xml

<presetdef name="signjar"> 
    <signjar sigalg="MD5withRSA" digestalg="SHA1" /> 
</presetdef> 

Fonte: KIYUT Developer Blog

+0

Che file build.xml, dove? Sto usando MonoDroid ... – theJerm

+0

Mi dispiace, non ho idea di MonoDroid, se usa gli stessi file usati da un progetto Android standard. Se non sbaglio, in un progetto standard di Androd, build.xml si trova nella cartella principale del progetto. –

+0

Hmm, non riesco a trovare un build.xml. Sto usando Eclipse; abbastanza standard, giusto? Ad esso corrisponde uno degli altri file, ad esempio project.properties, default.properties, AndroidManifest.xml o .project? – Erhannis

0

Sono nuovo di Android, ma io stato in grado di risolvere il problema magicamente: D
ho usato Java 1.7 con la mia app e utilità di riga di comando utilizzate [keytool, jarsinger e zipalign] per firmare la mia app e ottenere lo stesso errore.
Quindi sono tornato su Eclipse e ho utilizzato lo strumento Android "Esporta pacchetto applicazioni firmate" con lo stesso keystore in cui avevo inizialmente pubblicato la mia app; ha preso quell'APK e ha usato la riga di comando per comprimerlo. [Ha dovuto incrementare il codice di versione nel manifest btw]. Ho annullato la pubblicazione del vecchio APK e pubblicato questo nuovo. Una volta fatto, non testarlo immediatamente.
Non so quanto tempo bisogna aspettare ma la mia era lavorando 4 ore più tardi, quando ho controllato :)

16

Su una tavoletta, si noti che se si installa una versione di debug dell'applicazione e quindi disinstallarlo come normale (trascinandoli cestino finché non dice "disinstalla") che non è sufficiente. Perché compresse hanno il potenziale per più utenti, si deve andare a

Settings > Apps > All 

e poi scorrere tutta la strada fino in fondo. Lì, vedrai la tua app. Toccalo, quindi tocca Menu nella barra delle azioni (i tre punti), quindi uninstall for all users. Allora sarai a posto.

+2

Ho avuto esattamente questa situazione - esegui il debug della versione su un tablet, mettilo in beta nel Play Store, provalo per scaricare, ha ottenuto l'errore. Deinstallato tramite Impostazioni ma non ha funzionato finché non ho seguito le tue istruzioni. Grazie! – Andrea

+2

GRAZIE! Questo mi ha salvato la giornata! – Akli

+1

Questa dovrebbe essere la risposta accettata. –