INSTALL_FAILED_UPDATE_INCOMPATIBLE quando provo a installare .apk compilato sul dispositivo


291

Ho compilato il launcher Trebuchet da CyanogenMod 9 e ho provato a installarlo con adb:

$ adb install out/target/product/generic/system/app/Trebuchet.apk
3986 KB/s (7870141 bytes in 1.928s)
    pkg: /data/local/tmp/Trebuchet.apk
Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]

Ho provato su Nexus S con CM9 e Galaxy Nexus con JB di serie. Perché visualizzo questo errore?

EDIT: Nel mio caso ho provato a reinstallare il pacchetto di sistema con Gestione pacchetti. Non è supportato, quindi ho questo errore. La fonte dell'errore potrebbe differire nel tuo caso.


2
su alcuni dispositivi più recenti con funzionalità per più utenti, controlla se l'app è installata per altri utenti (ad es. accesso ospite). Un tester della mia azienda ha avuto problemi con questo problema per ora, quando è venuto da me, ci sono voluti 5-10 minuti anche per me, per scoprire che la stessa app era installata con login ospite diverso in quel dispositivo, quindi non lo era viene mostrato sulla schermata principale o nemmeno nelle impostazioni
Shirish Herwade,

Risposte:


500

significa che l'applicazione che si desidera installare è già installata. basta rimuovere quello vecchio e riprovare.


27
Ha funzionato per me, ma ho anche dovuto riavviare una volta.
Droidgren,

28
Ho dovuto andare in Impostazioni -> Gestisci applicazioni per trovare l'app e scegliere di disinstallarlo da lì in quanto non veniva visualizzato altrove.
David Conlisk,

23
Potrebbe anche essere necessario disinstallare da tutti gli account utente (il mio Nexus 10 aveva 3 utenti).
Tyler Kiser,

1
@TylerKiser Grazie per il testa a testa su quello.
Jacob Holloway,

1
cosa succede se provo a fare un aggiornamento di un'app esistente? questo eliminerebbe tutto ciò che la mia ultima app ha salvato localmente
miracle-doh

184

Provare

adb uninstall package-name

Per me funziona. Ho rimosso la mia app usando Titanium Backup. Tuttavia, penso che il backup di Titanium non abbia rimosso completamente la mia app.


1
Ho notato la stessa cosa usando DevDrawer. Questo ha funzionato.
tir38,

1
Grazie! Questo mi ha salvato da un enorme mal di testa inspiegabile. Non sono sicuro di come sono arrivato in questo stato ... Sto eseguendo il debug di un'app in Xamarin Studio e Visual Studio e funzionava bene fino a quando non lo era ... vabbè.
Jamie,

1
Quando tutto il resto della risposta accettata non è riuscito ... ha funzionato.
DennisWelu,

Grande! Semplice e facile. Non è necessario riavviare con questa soluzione.
taciosd,

Per me funziona. Prima di provare a disinstallare e riavviare manualmente e nulla cambia, solo con il comando adb funziona. Grazie.
ricky.tribbia,

101

Disinstallare l'applicazione sarebbe sufficiente per evitare questo problema.

INSTALL_FAILED_UPDATE_INCOMPATIBLE

ma a volte anche la disinstallazione del messaggio viene sollevata di nuovo, si verifica in Android OS 5.0+, quindi questa è la soluzione:

Vai a Settings> Appse troverai la tua app con il messaggio:

"Non installato per questo utente" inserisci qui la descrizione dell'immagine

Dobbiamo disinstallare manualmente per tutti gli utenti !, quindi possiamo installare la nostra applicazione compilata senza problemi.

inserisci qui la descrizione dell'immagine

Altre opzioni:

  • Rimuovere la vecchia applicazione e installarla di nuovo.

  • Usa il comando Android Debug Bridge:

    disinstallazione adb [NOME PACCHETTO]


2
Grazie! Questo è quello di cui avevo bisogno. Perché e quando hanno iniziato a farlo in questo modo?
Nick,

apparentemente dal OS 5.0 + in poi
Jorgesys il

1
Inizialmente, non riuscivo a trovare la mia app disinstallata in Impostazioni -> App. Si è scoperto che in Lollipop 5.1.1, l'app disinstallata era elencata dal nome del pacchetto, non dal nome dell'app. Quindi, se hai eseguito una disinstallazione di adb e l'installazione di adb non riesce ancora, cerca l'app disinstallata sotto il nome del tuo pacchetto. Quindi, com.acme.wileycoyote sarà elencato alfabeticamente sotto "c", non "w".
Yojimbo,

Grazie, funziona! Il mio telefono non ha l'opzione "Disinstalla per tutti gli utenti", lo disinstallo accedendo a tutti gli utenti ...
DawnYu

1
Che "tutti gli utenti" quando l'utente è esattamente uno - ME !!! Ad ogni modo, funziona - votato.
WindRider,

21

Due modi che possono essere lavori

1: disinstallare manualmente l'app dal dispositivo mobile

2: Aprire il prompt dei comandi, tracciare il percorso adbed eseguire il comando seguente

adb uninstall your_package_name

2
L'unico modo che funziona per dispositivi senza display.
DenisKolodin,

1
ad esempio: "adb uninstall net.gavin.hello" dove il nome del pacchetto è su AndroidManifest.xml come "pacchetto =" net.gavin.hello ""
Gavin Simpson,

9

Ho appena rinominato il pacchetto e ha funzionato per me.

Oppure, se stai usando Ionic, potresti eliminare l'applicazione e riprovare, questo succede quando ionic rileva che l'app che stai distribuendo non proviene dalla stessa build. Accade spesso quando si cambia dal PC.


Nient'altro ha funzionato per me. Grazie per la grande idea!
Ken Pespisa,

2
Troppo lavoro, farei il backup e rimuovere l'apk e reinstallarlo.
pevik,

non ha funzionato su Android 6.0.1. Ho dovuto eliminare l'app sul dispositivo e reinstallare lo stesso pacchetto.
Kakyo,

13
"Ho appena rinominato il pacchetto", non funziona, in effetti stai creando un'altra applicazione!
Jorgesys,

8
  1. vai a: la tua cartella adb \ sdk \ platform-tools \
  2. digitare cmd
  3. digitare: adb remount nella finestra di comando
  4. shell adb
  5. su
  6. rm /system/app/YourApp.apk
  7. Riavvia il dispositivo

cosa rimonta? posso usare questa versione di rilascio e debug e montarla e rimontarla facilmente?
piotrek1543,

2
Non ha molto senso come APK utente non sono memorizzati in /system/appma/data/app
m0skit0

@ piotrek1543 adb remountrimonta la partizione di sistema come lettura / scrittura anziché sola lettura predefinita.
m0skit0,

8

La domanda era: perché sta ricevendo questo errore. La disinstallazione risolverà questo problema ma nel mio caso, mentre stavo installando la versione compilata dell'apk, il problema sollevato. Stavo cercando di creare un aggiornamento per la mia applicazione. Quindi, quello che ho fatto, ho creato un apk firmato e poi ho provato a installare l'apk e l'apk installato perfettamente. Quindi, piuttosto rimuovendo il vecchio apk, ho dovuto firmare il nuovo aggiornamento e quindi installarlo.


1
Anch'io. Prova a testare il processo di aggiornamento. Quindi la disinstallazione non è un'opzione.
Martin

6

Questo forse perché hai più di un utente nel tuo dispositivo e hai appena eliminato l'app su uno ( lasciando l'apk ancora presente per gli altri ).

Ho eliminato in tutti gli account e ha funzionato in seguito.


Intendi gli account Google?
CACuzcatlan,

Sì, esattamente cosa intendo.
neteinstein,

5

Questo può accadere se firmi la tua domanda con un certificato diverso. Puoi sempre usare

adb install -r myapk.apk

per sovrascrivere un apk esistente sul tuo dispositivo, ma otterrai comunque l'errore se hai firmato il nuovo apk con un certificato diverso da quello dell'apk installato.

In quello scenario dovrai disinstallare l'apk dal tuo dispositivo prima di tentare l'installazione. Tuttavia, ciò può influire anche sull'applicazione poiché la firma originale potrebbe essere legata a determinate API dello sviluppatore, pertanto potrebbe essere necessario aggiornare la console con le nuove credenziali.


4

Ho installato il file manager Astro e cercato una versione precedente del file apk, ne ho trovata una sulla sdcard e ho eliminato il file apk usando il file manager Astro.


4

Se il tuo dispositivo supporta più utenti, potrebbe essere necessario eliminare anche l'app per ciascun account.

Di solito uso adb e questo è il trucco adb uninstall <your-package-name>


4

se l'APK è integrato nel progetto con il file Android.mk. Forse è perché il certificato di firma è stato modificato.

nel mio problema, ho aggiunto LOCAL_CERTIFICATE: = piattaforma. poiché l'apk originale è firmato senza questo tag.


Questo è davvero un commento, non una risposta. Con un po 'più di rappresentante, sarai in grado di pubblicare commenti .
Enamul Hassan,

2

Nel mio caso non esisteva una versione dell'app che potevo trovare tramite Gestione dispositivi o Astro.

Quello che ho finito per fare è stato:

1) Scarica l'ultima versione dell'app dall'app store

2) L'app non era ancora visibile in Gestione dispositivi fino a quando non ho riavviato il mio dispositivo.

3) Rimuovere l'app da Gestione dispositivi

4) Esegui di nuovo il mio progetto

5) Tutto funziona

Spero che questo aiuti qualcuno


2

C: \ android-sdk \ platform-tools \ adb.exe: comando non riuscito con il codice di uscita 1

Output dell'errore: adb: installazione dell'app \ piattaforme \ android \ app \ build \ output \ apk \ debug \ app-debug.apk non riuscita: errore [INSTALL_FAILED_UPDATE_INCOMPATIBLE: pacchetto com.example. app1le firme non corrispondono alla versione precedentemente installata; ignorando!]

Soluzione:

L'app è già app1installata sul telefono (principalmente il download dalla console di riproduzione o la chiave di caricamento è stata modificata)
Disinstallare l'app.

Più dettagli:

È possibile che questa app sia già stata caricata su Play Store utilizzando il tasto di caricamento, Play Console abbia applicato la propria firma. Ecco perché l'app nel tuo telefono scaricata da google play non ha la stessa firma della tua chiave di caricamento.

Disinstallando l'app, non esiste una versione dell'app Play Store, quindi si verificano corrispondenze errate quando si installa una nuova versione sul telefono.

Spero che aiuti.


1

Vai su Impostazioni / App / Cerca la tua app e disinstalla ...

Ha funzionato per me


1
  1. Vai su Impostazioni / App / Cerca la tua app e disinstalla ...
  2. apri il prompt dei comandi e "disinstallazione adb"

Ha funzionato per me


1

Per gli utenti MIUI, oltre alla solita opzione di debug USB, assicurati di abilitare anche queste impostazioni:

Installa tramite USB
debug USB (impostazioni di sicurezza)

quindi accettare il prompt quando si tenta di installare nuovamente l'app.


1

Ho avuto lo stesso problema e l'ho seguito per risolverlo.

  1. Impostazioni> Memoria> Cancella dati memorizzati nella cache
  2. Impostazioni> App> Disinstalla le app visualizzate. Avevo disinstallato le mie app ma stava mostrando lì.
  3. Riavvia e poi tutto è andato bene.

3
Il secondo punto ha aiutato. Nel mio caso l'app non è stata installata per l'utente corrente ma è stata installata per altri utenti. Quindi, ho fatto clic sull'app nell'elenco delle app e all'interno della pagina dei dettagli, ho fatto clic sul pulsante Altro (tre punti verticali). Lì, aveva un'opzione 'Disinstalla per tutti gli utenti'. Che ha fatto per me. Grazie!
Harisewak,

1

Ho trascorso un'ora a cercare di eseguire il debug di questo e poi ho capito che ero collegato al mio emulatore invece che al mio telefono. Quindi, anche se avevo cancellato con successo l'app sul mio telefono, non funzionava ancora. Stupido errore ma forse questo aiuterà qualcun altro.


0

Nel mio caso, ho installato l'applicazione da Playstore e dopo quando sto cercando di eseguire da Eclipse o Android Studio quindi proverò a installarlo di nuovo su quell'APK che non lo consentirà.

Quindi prima di tutto devi disinstallare quell'APK Siged e dopo devi provare.

Grazie.


0

RankoR @ devi aver installato l'applicazione da un altro computer. nel mio caso è qui che è sorto il problema .. tutto quello che devi fare è semplicemente disinstallare l'applicazione e reinstallarla o eseguirla dal computer in uso. questa potrebbe essere una risposta tardiva ma aiuterà qualcuno .. grazie


0

Mi è successo quando ho installato un build di sviluppo utilizzando Instant Run e disinstallato da Google Play. Per qualche motivo i dati di Instant Run sono ancora nel dispositivo e non possono installare / disinstallare di nuovo l'app.

L'unico modo per risolverlo: - disabilitare Instant Run in Android Studio - installare da Android Studio (dovrebbe funzionare solo da qui) - disinstallare l'app

ora dovrebbe essere pulito da installare da Google Play o adb.


0

si è verificato se si crea l'apk da qualche altro PC e lo si aggiorna da un PC diverso.


Qual è la soluzione per questo caso?
dpaksoni,

0

Se il tuo file manifest ha questa riga -

Android: sharedUserId = "android.uid.system"

sta causando questo errore! commenta questa riga e sei a posto !!


0

Non vedo nessuno menzionare il mio caso, quindi lasciatemi aggiungere - succede quando si crea l'app in una modalità (ad esempio Dev) e quindi si tenta di sovrascriverla con una modalità diversa (ad esempio Produzione).

La soluzione è la stessa degli altri casi: elimina l'app sul dispositivo / simulatore ed esegui nuovamente.


0

Se stai tentando di eseguire il debug da un computer diverso da quello che eri originariamente otterrai l'errore INSTALL_FAILED_UPDATE_INCOMPATIBLE. Però, esiste un modo per procedere senza disinstallare l'app e perdere i dati.

Per vedere come trasferire il debug.keystore richiesto in modo da non ricevere il messaggio "Il dispositivo ha già un'applicazione con la stessa applicazione ma una firma diversa. Per continuare, dovrai disinstallare l'applicazione esistente." (e perdere i tuoi dati). Vedi Aggiornare l'app su un altro computer con lo stesso debug.keystore in Android


0

Samsung Galaxy Phones ha una funzione nota come cartella protetta App per la rimozione che ha risolto il problema.

anche adb disinstalla nome pacchetto non può rimuovere l'app dalla cartella protetta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.