Errore "App non installata" su Android


425

Ho un programma che funziona nell'emulatore Android. Ogni tanto ho creato un .apk firmato ed esportandolo sul mio HTC Desire per testarlo. È andato tutto bene.

Sul mio ultimo .apk esportato viene visualizzato il messaggio di errore "App non installata" quando provo a installare il .apk. Funziona bene sugli emulatori.

Dato che ho principalmente testato gli emulatori e solo di tanto in tanto l'esportazione su un telefono reale non sono sicuro di quando sia successo. Qual è la causa probabile che non si installa su un telefono fisico ma funziona correttamente negli emulatori?

Ho provato a riavviare il telefono e rimuovere il .apk esistente, non risolve l'errore.


5
Quando dici di aver rimosso il .apk esistente intendi che hai disinstallato l'applicazione dal telefono? In caso contrario, disinstallare l'applicazione prima di provare a installarla di nuovo.
Telmo Marques,

9
Cosa ha detto TomS , corri adb uninstall your.package.namee poi adb install /path/to.apk. Non vedo perché non funzionerebbe. Hai cambiato qualcosa nella procedura di firma?
Felix,

2
Hai provato a eseguire il debug direttamente da Eclipse nel dispositivo collegato al computer per vedere se il registro dice altro?
Javi,

1
Ho rimosso l'app utilizzando l'opzione di disinstallazione dal gestore applicazioni sul telefono.
Entropy1024

Felix. Da dove eseguo questa cosa adb?
Entropy1024

Risposte:


265

Principalmente per telefoni più vecchi

Ho riscontrato l' App not installederrore solo durante il tentativo di installare un apk sul mio telefono che funziona su 4.4.2 aka KitKat, ma il mio amico non ha riscontrato questo errore sul suo telefono che funziona su 6+. Ho provato le altre soluzioni come rimuovere la versione precedente / di debug dell'app perché l'apk era una versione di rilascio, cancellando i dati dell'app di debug e persino cancellando tutti i miei dati memorizzati nella cache. Quindi, finalmente ho capito che tutto quello che dovevo fare era selezionare entrambe le versioni della firma quando ho creato il mio apk firmato.

inserisci qui la descrizione dell'immagine

Prima avevo V2 (Full APK Signature)selezionato solo , ma anche dopo averlo selezionato V1 Jar Signature, sono stato in grado di installare correttamente l'APK firmato sul mio dispositivo 4.4.2. Spero che questo aiuti gli altri!


6
Prendi in considerazione questa soluzione quando hai un telefono più vecchio! Ho un Galaxy S4 mini con Android 4.4.2 e ho dimenticato di controllare la "firma V1" in modo che non possa essere installato nel dispositivo. Dopo aver verificato, l'apk viene installato come un incantesimo.
Jose Ramon Garcia,

1
@JoseRamonGarcia La cosa divertente è che ho lo stesso telefono e la stessa versione di Android haha! Sono contento che abbia funzionato per te
Chris Gong,

1
Grazie! Android Studio dovrebbe fornire ulteriori informazioni al riguardo quando si firma l'applicazione o rendere più ovvio ciò che fa quando non si spuntaV1 (Jar Signature)
melledijkstra

Nel mio caso devo aggiungere questa configurazione nel file manifesto android: installLocation = "internalOnly"
avinash kumar

1
Inizialmente ho firmato con v2 quando ho riscontrato il problema. Quindi ho firmato solo con v1 e poi ha funzionato. Sto eseguendo sdk23 sul mio telefono.
Ambra

206

Per me, su Android 9 (API 28), disabilitare Google Play Protect dall'app Play Store ha funzionato e sono riuscito a sbarazzarmi App not Installeddell'errore.

Per disabilitare Google Play Protect. Apri l'applicazione "Play Store" => tocca il pulsante Menu => seleziona l'opzione "Play Protect" => Disabilita le opzioni "Scansiona dispositivo per minacce alla sicurezza".


4
anche se la prima volta che ho provato a installare la mia app, mi è stato chiesto da play protect di non poter verificare che l'app fosse sicura e che ho premuto "installa comunque", l'app non si installava ancora. questa sostituzione ha funzionato
user2565663,

Non ho il Play Store nell'emulatore Android (API 28).
Jerry Dodge,

3
Anche il caso su Android 8 (solo per completare il divario segnalato tra 7 e 9).
cleardemon,

3
Funziona benissimo. Non dimenticare di ripristinare le impostazioni una volta installato apk.
Rahamath,

Grazie mille, risolti problemi sul mio Xiaomi Redmi 5 Plus
Nicola Gallazzi l'

150

Ho avuto un problema simile ed è stato perché stavo cercando di installare un apk su un telefono con una versione precedente dello stesso apk ed entrambi gli apk non erano stati firmati con lo stesso certificato. Voglio dire quando ho usato lo stesso certificato sono stato in grado di sovrascrivere l'installazione precedente, ma quando ho cambiato il certificato tra le versioni, l'installazione non era possibile. Stai usando lo stesso certificato?


9
Sì, è lo stesso certificato. Penso di averlo già fatto una volta. Ho provato a eliminare l'app esistente sul telefono e ho anche provato a installare una versione non firmata. Ricevi ancora lo stesso messaggio di errore.
Entropy1024

2
Ho anche avuto lo stesso problema per quello (versione precedente con altro certificato) - per essere precisi, l'avevo installato implicitamente per l'utilizzo del debugger. Revmoving ha risolto il problema (non è il tuo caso, come visto di seguito, ma vale la pena registrarti qui)
chesterbr

11
Questo post ha più di 30 risposte. Quello che consiglio è, ogni volta che si incontra questo problema, osservare i registri del dispositivo durante l'installazione dell'app. usa adcat logcat. Scoprirai la causa esatta dell'errore di installazione. il registro per il mio problema è "Le firme del pacchetto com.companyname.appname non corrispondono alla versione precedentemente installata; ignorando!"
Manikandan,

Ho cambiato il nome del pacchetto. e ha funzionato. Mi sono reso conto di aver testato più app con lo stesso nome di pacchetto, quindi l'errore.
user30478

120

Chiaramente ci sono molte cause di questo problema. Per me la situazione era questa: mi ero schierato sul mio Nexus 7 (dispositivo reale) da Android Studio (v1.3.2). Tutto ha funzionato bene. Ho quindi creato un apk firmato e caricato sul mio Google Drive. Dopo aver disconnesso il mio nexus dall'USB, sono andato alle impostazioni / app e ho disinstallato la mia app (App1). Ho quindi aperto google drive e fatto clic sul mio App1.apk e ho scelto di installarlo (è necessario assicurarsi di aver consentito l'installazione di apk nelle impostazioni). Poi ho ricevuto il temuto messaggio "App non installata"

Soluzione per me: torna alle impostazioni / app e scorri sebbene tutte le app e in fondo fosse una versione pallida della mia App1 (nota che l'App1 originale era in alto in ordine alfabetico che è stata eliminata come sopra). Quando si fa clic sulla versione pallida diceva "Non installato per questo utente". (Avevo impostato il mio Nexus per avere più di un utente). Ma nell'angolo in alto a destra c'è un pulsante a tre punti . Ho premuto questo e ha detto "Disinstalla per tutti gli utenti" . Cosa che ho fatto e risolto il problema. Ora sono stato in grado di fare clic su App1.apk e si è installato bene senza l'errore.


1
Sì, ho avuto varie ragioni, e questa era una di queste. Grazie!
Alveoli,

1
ha lo stesso problema. Ho attivato un account ospite e durante la rimozione dell'app non è stata rimossa da tutti gli utenti.
Filip Luchianenco,

2
È stato davvero utile e ho installato e disinstallato la mia app per circa 20 volte prima di trovarla. Molte grazie! :-)
Rahul Arora il

3
Se solo StackOverflow ci permetta di votare più di una volta. Questa soluzione mi ha aiutato quasi un anno fa. Ho votato e prontamente me ne sono dimenticato. Ho avuto lo stesso problema oggi e mi ha aiutato di nuovo. Ho provato a migliorare e StackOverflow ha detto che avevo già. Oh bene.
Glenn,

2
Grazie. Ho anche riscontrato questo problema. Non è assolutamente ovvio, la prima volta, che la disinstallazione dell'app lo faccia solo per l'utente attivo corrente. Per evitare di adb uninstall your.package.nameaccedere alle impostazioni ogni volta, utilizzo il comando che disinstalla per tutti gli utenti.
Xavier,

61

Ho affrontato il problema quando aggiorno il mio Android dalla 2.3.2 alla 3.0.1. In tal caso, l'IDE prenderà automaticamente in considerazione i seguenti punti.

1.Non è possibile installare un'app con Android: testOnly = "true" con mezzi convenzionali, ad esempio da un file manager Android o da un download da un sito Web

2.Android Studio imposta android: testOnly = "true" su APK che vengono eseguiti

se esegui la tua app collegando direttamente il dispositivo al tuo sistema, l'apk verrà installato e non funzionerà più.

se hai inviato questo apk per copia dalla cartella put e debug compilata, non verrà mai installato nel dispositivo.

Soluzione : vai a Build ---> Build APK (s) ---> copia la condivisione del file apk nel tuo team

allora il tuo problema risolverà.


1
Mi hai salvato il lavoro! Grazie!
img.simone,

1
Oh Dio, mi ci sono volute 3 ore ..
cuddlemeister,

Funziona! Grazie!
Peter,

1
Questo Questo questo qui è la risposta per me. Così fastidioso che questa semplice cosa non è stata resa nota in modo palese nel programma o attraverso eventuali messaggi di errore sul dispositivo. grazie uomo!
LFMekz,

29

Ho affrontato lo stesso problema. Il problema era che l'attività principale nel mio file AndroidManifest.xml è stata scritta due volte. Ho cancellato il duplicato.


Grazie per il suggerimento! Nel mio caso è android:exportedstato impostato su false per l'attività di avvio
ildar ishalin

21

Questo può accadere se hai MainActivity dichiarato due volte in AndroidManifest.xml.

Un altro possibile motivo: hai modificato l'attività di avvio. Suggerimento: non farlo mai con applicazioni già pubblicate! Ragioni discusse nel blog degli sviluppatori Android .


4
+1 android:nameattributo di qualsiasi Activity, Service, BroadcastReceivere così via non può essere modificato nel file manifesto. Anche se sembra essere l'identificatore privato all'interno della tua app, è un'API pubblica.
Caw

Devo cambiare la mia attività di lancio Ho aggiunto una schermata iniziale e al suo interno devo scaricare i feed prima di iniziare l'attività principale. Hai una soluzione per questo oltre a mettere la schermata iniziale all'interno dell'attività principale?
Chris Sim,

2
Puoi usare un tag <activity-alias> per gestirlo!
thiagolr,


14

Ho avuto lo stesso problema ed ecco come risolto: vai al file Manifest e assicurati di avere gli attributi "Debuggable" e "Test Only" impostati su false. Ha funzionato per me :)


2
Non sono sicuro di cosa intendi per "Solo test", ma impostare debuggable su true e firmare l'apk ha funzionato per me!
ingh.am

non ha funzionato per me. Ho usato:android:testOnly="false" android:debuggable="false"
Francisco Corrales Morales il

potresti spiegare? Non ho alcun attributo, non impostato vero e non falso, semplicemente non lì. Come appare la linea?
pashute,

14

Per coloro che utilizzano Android Studio 3.

La risposta di Suryanarayana Reddy è corretta se non indica i passaggi per risolverlo, quindi.

nel tuo AndroidManifest.xml sotto il tag dell'applicazione aggiungi testOnly="false" e in questo android:debuggable="true"modo:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    android:testOnly="false"
    android:debuggable="true"
    >

Modifica
quindi nella barra dei menu di AndroidStudio Build> Build APK


Grazie! android:debuggable="true"porta a Error: Avoid hardcoding the debug mode; leaving it out allows debug and release builds to automatically assign one [HardcodedDebugMode]. Ho provato android:testOnly="false", sia Build > Build Bundl(s) / APK(s) > Build APK(s)e Build > Generate SignedBundle APK...con le versioni di firma v1, v2 (come tra i primi screenshot). Prima ho dovuto rimuovere l'app precedente, quindi installarne una nuova.
CoolMind

Recentemente riscontrato questo problema. Appena aggiunto android: testOnly = "false" e Build -> Build Apks e fatto. Tutti ordinati. Grazie! Non è necessario aggiungere altre proprietà Android come Android: debuggable = "true".
androidStud

12

So che questo è un vecchio post, ma per i nuovi utenti può essere utile. Ho avuto lo stesso problema: la mia applicazione ha funzionato bene durante il debug. Quando ho firmato l'APK ho ricevuto lo stesso messaggio: "Applicazione non installata".

Ho risolto il problema con la disinstallazione del mio JDK (stavo usando jdk-6u14-windows-x64) e ne ho installato uno nuovo (jdk-6u29-windows-x64). Dopo l'esportazione e firmare di nuovo l'APK, tutto era ok!

Riprendendo, il mio problema era nella versione JAVA. Grazie Oracle !!


Questo risolto il problema per me ... maggiori informazioni stackoverflow.com/questions/6282169/…
Greg Ennis

2
È incredibilmente strano. Era per un emulatore o un dispositivo?
Joe Plante,

12

Il mio problema era che sul dispositivo ho più account utente. Ho eliminato l'app su 1 account, ma era ancora installata sull'altro account. Pertanto lo spazio dei nomi si è scontrato e non è stato installato. La disinstallazione dell'app da parte di tutti gli utenti l'ha risolta per me.


2
Da Gestione applicazioni, selezionare l'app (che verrà visualizzata ma che verrà elencata come disinstallata), selezionare Altro e verrà visualizzata l'opzione Disinstalla per tutti gli utenti.
Casey Murray,

9

Il mio problema era: ho usato l' Apk di debug, che è stato generato mentre eseguivo il comando Esegui da Android Studio

La soluzione era: invece di utilizzare questo file, ripulisci il progetto e fai clic su Genera> Crea APK da Android Studio. Quindi puoi utilizzare l'APK generato dalla solita cartella (app / build / output / apk / debug /)

Il file che è stato generato in questo modo è stato installato senza problemi.


7

Se l'applicazione non viene installata, eliminare il file .android_secure/smdl2tmpl.asecdalla scheda SD.

Se la cartella .android_secureè vuota nel file manager, eliminala dal PC.


5

Alla fine ho scoperto che nessuna app veniva installata correttamente, non solo la mia. Ho impostato l'app di installazione predefinita dalla scheda SD su Automatico. Ciò l'ha risolto.


1
Come lo fai? Non trovo affatto questa opzione sul mio dispositivo
SoulRayder il

Huawei P8 Lite, Android 6.0, ha solo: Avanzate / Mem e memoria / posizione predefinita: interna / SDCard Non ha aiutato.
Kaay

5

Se hai una versione precedente per quell'applicazione prova a cancellarla prima, ora il mio problema è stato risolto con quel metodo.


5

Ho anche risolto questo problema,

Il problema era che ho dichiarato la mia attività principale due volte, On come prima attività da caricare e ho specificato anche un filtro di intenti per esso E ancora una volta al di sotto di esso l'ho dichiarato di nuovo.

Assicurati di non dichiarare le tue attività due volte.


Se dichiari la tua attività due volte nel Manifest.xmlfile, verrà visualizzato un errore di compilazione a meno che tu non abbia le stesse attività con lo stesso nome ma in pacchetti diversi MA questo non funziona con me come ho controllato tutto.
progetto

5

creare il file keystore tramite la riga di comando

keytool -genkey -alias key_file_name.keystore -keyalg RSA -validity 1000000000000000 -keystore key_file_name.keystore

esporta l'apk tramite Eclipse, fai clic con il pulsante destro del mouse sul progetto Android Strumenti Android> Esporta pacchetto applicazione firmata , quindi specifica la posizione e la password del keystore.

questa cassa sarà firmata apk allo stesso tempo l'apk sarà zipallineato. E installabile.

Se si passa dalla riga di comando per tutti, alcune volte è possibile che venga visualizzato l'errore "Applicazione non installata". (L'errore dell'applicazione non installata può verificarsi non solo quando si utilizza la riga di comando. Possono esserci anche altri motivi)


4

Ho avuto lo stesso problema, ovvero l'app si presentava come installata, ma non si avviava quando si toccava l'icona. Dopo alcuni colpi alla testa, ho scoperto che avevo stupidamente inserito 'android: exported = "false"' per la mia principale attività di avvio all'interno del file AndroidManifest .... Una volta rimosso, l'app è stata avviata correttamente.


4

Il mio problema era simile a quello di @Lunatikzx. A causa di un tag di autorizzazione errato che è stato scritto come attributo all'applicazione:

<application
    android:permission="android.permission.WRITE_EXTERNAL_STORAGE"
    android:label="@string/app_name"
    android:icon="@drawable/ic_launcher"
    android:testOnly="false"
    android:debuggable="true">

Ciò che l'ha risolto per me è stato modificare il tag di autorizzazione per separare il tag in questo modo:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

4

Le app di debug a caricamento laterale per i test su un telefono fisico hanno funzionato in modo affidabile fino a quando non ho aggiornato il telefono da Android Pie ad Android 10. Successivamente, l'errore "App non installata" si è verificato ogni volta che ho provato a trasferire l'app.

Sulla base di un avviso nel mio AndroidManifest.xml, sono passato da ...

<application
    android:name=".App"
    android:allowBackup="true" ... />

per...

<application
    android:name=".App"
    android:allowBackup="false" ... />

Dopo ciò, sono stato in grado di eseguire il sideload della mia app - una volta. Quindi, ho riscontrato di nuovo lo stesso errore "App non installata". Cambiando allowBackupdi nuovo a true, ha funzionato ancora una volta (almeno una volta).

È ovvio dal numero di risposte e dalla variazione delle risposte che ci sono molte ragioni per questo problema. Sto condividendo questo nel caso in cui aiuti gli altri.


Ho appena provato impostazione android:allowBackup="true"per android:allowBackup="false"e ancora senza fortuna.
KRK,

3

Verifica con la versione Android.

Se stai installando app non commerciali e una versione incompatibile otterrai questo errore.

Es .: Applicazione mirata alla 2.3.4 Il tuo dispositivo è 2.2 Quindi otterrai questo errore.


dove nei file di configurazione gradle vedo la versione di destinazione di Android? Non lo vedo build.gradlené nel file manifest di Android né. A meno che compileSdkVersion(valore 23) o minSdkVersion(16) o targetSdkVersion(22) non indichino in qualche modo l'impostazione desiderata. La mia galassia esegue Android 7.0 (e chiede di aggiornare ma non lo permetto ancora). Non sto usando Android Studio per costruire la mia app gradlew assembleRelease
Reazione

3

L'errore "Applicazione non installata" può verificarsi anche se l'app è stata installata o spostata sulla scheda SD e quindi è stato collegato il cavo USB, provocando lo smontaggio della scheda SD.

La disattivazione della memoria USB o il ripristino dell'app nella memoria interna risolverebbe il problema in questo caso.


3

Ho riscontrato anche questo problema. Si prega di provare questa soluzione. Assicurarsi che il nome del pacchetto del progetto sia diverso dal progetto precedente che era già installato nel telefono cellulare. Penso che abbiano dei conflitti nei loro nomi. Funziona in me.


2
Funzionerà ma non è la soluzione migliore in quanto finirai con milioni di app installate. Vedi alcune delle altre risposte sopra.
Astra Bear,

3

Potresti anche riscontrare questo problema perché il produttore del tuo dispositivo non ha concesso in licenza le app commerciali di Google, come Play Store, YouTube, Google Maps, ecc. Segui questa risposta per risolvere il problema.


3

Apparentemente, ciò può anche essere causato rinominando l'APK prima di installarlo. Volevo ridurre la quantità di digitazione che gli utenti dovevano fare per ottenere l'app dal nostro sito Web abbreviando il nome del file. Successivamente, non sono stati in grado di installarlo.

Una volta ripristinato il nome del file originale utilizzato durante la creazione e la firma del pacchetto sono stato in grado di aggiornare l'app installata.


Penso che durante la prima installazione ho cambiato il nome. Ora l'impostazione predefinita (app_release.apk) non viene installata. Forse proverò a cambiarlo ... hmmm.
pashute,

3

Usando Android Studio, avevo precedentemente installato la versione di debug non firmata dell'APK ( Build> Build APK ) e dovevo disinstallarla prima di installare la versione di rilascio firmata ( Build Variants> Build Variant: release , Build> Genera APK firmato ).


1
Ho appena perso due ore con lo stesso problema. La mia app visualizza la versione, ad es. "3.5.6", ma non mostra se si tratta di una versione di debug o di rilascio. Ho avuto molti file diversi e ho perso la traccia di dove fossi, e ho provato ad aggiornare un apk di debug con un apk di rilascio. Penso che Android mostrasse un messaggio come "firme di file in conflitto", ma ora (Pie, 9.0) ottieni solo "App non installata", senza possibilità di trovare il motivo. Una lezione dolorosa!
Stephen Hosking,

3

per me la causa era che avevo più build usando diverse varianti di build sullo stesso telefono:

inserisci qui la descrizione dell'immagine

quello che è successo è che alcune di queste build sono state costruite da me , un altro mi è stato inviato da un altro sviluppatore. Il tentativo di installare gli sviluppatori mentre avevo altre build (create da me) ha causato l'errore sopra riportato.

quindi la correzione era semplice: elimina tutte le build sul mio telefono (indipendentemente dalla variante di build) .. quindi installa l'apk inviato dal mio peer .. e ha funzionato come un fascino


ha avuto lo stesso problema, immagino che la soluzione sia firmare sempre build quando si usano i sapori
Nickmccomb,

3

Ho affrontato un problema simile oggi e all'inizio ho pensato che fosse la mia scheda SD a corrompere. L'ho provato su molti dispositivi con Android 4.4 e versioni successive, ma ha continuato a portare lo stesso problema. Dopo alcuni googling e ricerche mi sono reso conto che non ho selezionato la firma del vaso v1 che è per dispositivi più vecchi di Android 7.0 torrone quindi ho applicato entrambi queste firme selezionando le due caselle di controllo e generato un apk firmato e ha funzionato.

inserisci qui la descrizione dell'immagine

Collegamento alla soluzione Android - Errore dell'app non installata durante l'installazione di un APK firmato - Come risolvere


Questo mi ha aiutato per un dispositivo che esegue Android 6
Stefan Zhelyazkov

Sono contento che questa risposta ti abbia aiutato a risolvere il problema. @ StefanZhelyazkov
Nelson Katale

2

Ciò può verificarsi anche quando si crea un widget della schermata principale e il file XML del widget ha un'attività non corretta specificata nella sua android:configureproprietà.

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.