Impossibile installare manualmente l'apk firmato sul dispositivo, errore "App non installata"


107

Vorrei pubblicare la mia app su GooglePlay ma prima vorrei fare un ultimo test con l'apk firmato per assicurarmi che tutte le chiavi API utilizzate funzionino correttamente con la versione di rilascio (GMaps, Facebook, ecc.)

Quindi ho appena creato una versione firmata della mia app con la nostra chiave di rilascio e quando provo a installare l'app sul dispositivo ho ricevuto un errore:

inserisci qui la descrizione dell'immagine

Ho provato a copiare l'apk sul dispositivo e installarlo con un'app di installazione apk.

La cosa strana è che quando eseguo lo stesso processo con la chiave di firma del debug, tutto va bene, posso installare ed eseguire l'app.

Ecco i passaggi della procedura:

Seleziono la chiave di rilascio , digito la password.

Ecco i passaggi della procedura:

Faccio selezionare il tipo di rilascio di generazione invece di debug

Seleziono il tipo di build di rilascio invece del debug

Nel caso avessi anche definito nel file gradle le chiavi di firma ma devo ammettere che non so se sia necessario.

Nel caso avessi anche definito nel file gradle le chiavi di firma ma devo ammettere che non so se sia necessario.

Ho provato tipo 7 sette volte ora, quindi presumo che questo problema non sia solo una password errata , inoltre posso farlo funzionare con la chiave di firma Android di debug standard.

Si prega di aiutare se potete.


1
Salam. Questa risposta potrebbe risolvere il tuo problema: http://stackoverflow.com/a/42745459/1676736
Sayed Abolfazl Fatemi

Sono di fronte allo stesso problema. Qual era il vero motivo? L'hai scoperto? @Adam Varhegyi
Rohit Singh

@RohitSingh La risposta qui sotto, lol.
Adam Varhegyi

Voglio dire che l'app non è stata disinstallata completamente anche tu disinstallato? O è solo Android 5.0 (o anche superiore).
Rohit Singh

1
@RohitSingh Il mio problema era esattamente come la risposta vuole. L'app è stata installata per un altro utente sul telefono e non l'ho vista con un utente diverso. Quindi ho dovuto disinstallarlo per "Tutti gli utenti"
Adam Varhegyi

Risposte:


81

Potresti usare il dispositivo Android 5.0 o successivo.

Vai su Impostazioni -> App -> Fai clic sulla tua app. ---> Nella pagina delle informazioni sull'app nel menu della barra delle azioni ci sarà un'opzione chiamata "Disinstalla per tutti gli utenti", fai clic su di essa. La tua app verrà completamente disinstallata e ora puoi provare a installare la nuova versione senza problemi. Spero che questo ti possa aiutare

Controlla la mia soluzione dal link sottostante.

Collegamento 1

Spero che ti possa aiutare.


Come diavolo potevano farlo in quel modo. Lavorando btw grazie.
Adam Varhegyi

2
Sebbene questo collegamento possa rispondere alla domanda, è meglio includere le parti essenziali della risposta qui e fornire il collegamento come riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia.
SOFe

Grazie mille, questo bug mi ci è voluta una settimana per capirlo
Diego Vinícius

Sono contento di averti aiutato !! @ DiegoVinícius
Ragu Swaminathan

66

Per gli Updated Android Studio 2.3utenti attuali questa risposta è per te, poiché al giorno d'oggi difficilmente le persone usano eclipse per lo sviluppo di Android poiché Android Studio ha enormi progressi.

Quindi, segui questo modo per creare il tuo Signed apkfile.

  1. Build> Genera Signed apk.
  2. Creare Keystore path .
  3. Mettere Password, alias, key password .
  4. Build type selezionare di conseguenza (ad esempio per rilasciare in playstore utilizzare release ).
  5. Signature Versionselezionare sia V1eV2 caselle di controllo .
  6. Finsih.
  7. Vai a da explorerdove hai selezionato l'apk da memorizzare e vedrai il .apknome del tuo file mentre lo app-release.apkusi.

14
La selezione della firma V1 ha funzionato
Meanman

mi hai risparmiato un sacco di tempo
curiosoMind

Lavora per me. Risparmia tempo . Grazie
YeeKhin

5
Controllare entrambi V1ed è V2stata la soluzione!
Alex Jolig

1
Il controllo di V1 ha risolto il problema per me. In precedenza, veniva controllato solo V2.
BluJ IT

51

la selezione della versione Signature v1 e v2 ha risolto il problema per me .... provaloinserisci qui la descrizione dell'immagine


4
Questo era esattamente il mio problema. la domanda rimane perché dovremmo contrassegnare anche V1 (firma del barattolo)? e come Google si aspetta che lo sappiamo?
A. Alqadomi

Non è obbligatorio. Se possibile, dovresti selezionare ENTRAMBE quelle caselle di controllo, ma se il nuovo meccanismo di firma V2 ti dà problemi, puoi semplicemente selezionare entrambe se riscontri problemi.
Shubhamhackz

43

La stessa cosa è successa a me, purché abbia generato il mio apk da Build> Build APK. Potevo installare e disinstallare l'apk tutte le volte che erano senza alcun problema, ma invece se ho generato l'APK Build> Genera firmato, quando ho passato l'apk al telefono e ho provato a installarlo, me ne ha permesso solo uno occasione, la stessa da cui è uscito il seguente messaggio:

inserisci qui la descrizione dell'immagine

fino ad allora andava tutto bene se selezionavo "INSTALLA IN QUALSIASI MODO", ma cosa succedeva se disinstallavo l'app e volevo reinstallarla (un possibile scenario), è successo quanto segue:

inserisci qui la descrizione dell'immagine

quindi ho risolto il problema disabilitando la protezione del gioco, cosa che ho ottenuto (all'interno di Google Play)> Menu> Play Protect> Cerca minacce alla sicurezza (disabilita).

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


Questa soluzione funziona per me. Un altro cambiamento di Google +1
Pronto Android

Mi hai salvato la vita!
akcoban

Puoi spiegarci perché questo accade? Cosa sto facendo di sbagliato che fa sì che questa sia la soluzione?
sparkhead95

16

"App non installata" mostra quando un'app con lo stesso pacchetto è già installata nello stesso dispositivo. basta eliminare la prima applicazione che stavi utilizzando a scopo di test prima di renderla firmata apk. Questo funzionerà. Saluti!


8
Sì, lo so ma non è installato in precedenza.
Adam Varhegyi

6
Come posso installare apk con una versione successiva, senza eliminare l'app corrente?
user7856586

12

Selezionare sia la versione Signature v1 che v2 risolverà il problema

inserisci qui la descrizione dell'immagine

schema v1

Un file JAR può essere firmato utilizzando lo strumento jarsigner della riga di comando o direttamente tramite l'API java.security. Ogni voce di file, inclusi i file non correlati alla firma nella directory META-INF, verrà firmata se il file JAR è firmato dallo strumento jarsigner. Per ogni voce di file firmata nel file JAR firmato, viene creata una singola voce di manifest purché non esista già nel file manifest

Schema V2

Le firme v1 non proteggono alcune parti dell'APK, come i metadati ZIP. Il verificatore APK deve elaborare molte strutture di dati non attendibili (non ancora verificate) e quindi eliminare i dati non coperti dalle firme. Questo offre una superficie di attacco considerevole. Inoltre, il verificatore APK deve decomprimere tutte le voci compresse, consumando più tempo e memoria. Per risolvere questi problemi, Android 7.0 ha introdotto APK Signature Scheme v2

Per impostazione predefinita, Android Studio 2.2 e il plug-in Android per Gradle 2.2 firmano la tua app utilizzando sia APK Signature Scheme v2 che il tradizionale schema di firma, che utilizza la firma JAR.

Si consiglia di utilizzare APK Signature Scheme v2 ma non è obbligatorio. si prega di vedere i dettagli


10

In Android Studio 3.0 e versioni successive

Come descritto qui

Nota: il pulsante Esegui crea un APK con testOnly = "true", il che significa che l'APK può essere installato solo tramite adb (che utilizza Android Studio). Se desideri un APK debuggabile che le persone possano installare senza adb, seleziona la tua variante di debug e fai clic su Build Bundle / s / APK (s)> Build APK (s).

Aggiungi android:testOnly="false"all'interno del tag dell'applicazione in AndroidManifest.xml

Riferimento: https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html


7

Sopra la risposta di shubham soni funziona per me, in realtà succede alla versione di Android> = 5.0.In sopra puoi installare solo usarlo durante la creazione del tuo apk inserisci qui la descrizione dell'immagine...


1
perché questa risposta duplicata?
sziraqui

@sziraqui: Subhankar soni non ha menzionato il motivo per cui "Non è possibile installare manualmente l'apk firmato sul dispositivo, ho ricevuto l'errore" App non installata ". Ho affrontato lo stesso problema relativo alla versione del sistema operativo come menzionato sopra, quindi per una migliore comprensione l'ho menzionato. Qualcosa non va nella mia risposta? Per la versione Android <= 5.0 potrai installare lo stesso apk senza contrassegnare le caselle di controllo di entrambe le versioni della firma.
Amit raj

La tua risposta aggiunge solo un punto in più alla risposta originale, quindi avrebbe dovuto essere un commento. Se stai pubblicando questo come una risposta, dovresti aggiungere una sorta di citazione a sostegno della tua affermazione di Android 5.0. E se il tuo problema fosse effettivamente correlato all'ide Android e non alla versione Android?
sziraqui

Grazie, l'immagine nella risposta mi ha dato l'idea di provare entrambe le firme V1 e V2 abilitate. In precedenza stavo solo andando con V1
jasxir

6

Qui ho risolto questo problema

Il motivo alla base di questo problema è che nel telefono esiste già un'applicazione con lo stesso nome di pacchetto, ma non è possibile trovarla nel menu del telefono (U ha già effettuato la disinstallazione ma in realtà è ancora nel telefono).

Per vedere l'applicazione vai su IMPOSTAZIONI telefoni -> APP . Lì puoi vedere l'applicazione, ma al suo interno il pulsante UNINSTALL potrebbe essere disabilitato. fare clic sul pulsante di overflow del menu per visualizzare Disinstalla per tutti gli utenti .

Dopo aver eseguito la disinstallazione per tutti gli utenti, ho installato correttamente il mio apk firmato. Puoi anche utilizzare adb per disinstallare l'app dal telefono.

adb uninstall package name

Inoltre, se il tuo cellulare supporta più utenti, controlla se la rispettiva app non è installata per altri utenti. Se è installato per altri, prima disinstalla l'app precedente e riprova


4

È una domanda piuttosto vecchia, ma la mia soluzione era cambiare versionCode (aumento) in build.gradle




3

Ciò potrebbe essere dovuto al fatto che esegui il file APK dalla memoria della scheda SD esterna. Basta copiare il file APK nella memoria interna.Il problema verrà risolto


1

Ciò può accadere a causa della scelta della versione della firma. Su alcuni telefoni, si verificano errori di installazione se la versione della firma è stata selezionata come V2. Quindi, se ciò accade, prova a selezionare V1, funzionerà sicuramente.


1

Oggi ho affrontato lo stesso problema, mi sono ricordato di aver firmato il mio apk con la "nuova" firma di Google Play:


inserisci qui la descrizione dell'immagine


Assicurati di aver firmato la tua applicazione con la firma di Google Play.

Se avete fatto:

  • Installa un aggiornamento caricando il tuo apk su Google Console (come faresti normalmente quando aggiorni la tua applicazione):

inserisci qui la descrizione dell'immagine


  • Dopo che è stato caricato correttamente, apri il file Artifact library nel menu.
  • Vedrai l'apk che hai appena caricato.
  • Premi il pulsante di download e seleziona Download derived APK.

Ora sarai in grado di installare l'apk.


0

se la versione di Android Studio è maggiore di 3.0

Sembra che non possiamo usare direttamente l'apk dopo aver eseguito sul dispositivo dalla cartella build -> output-> apk.

Dopo l'aggiornamento ad Android Studio 3.0 è necessario andare su Build -> Build Apk (s) quindi copiare l'apk da build -> output -> apk -> debug

inserisci qui la descrizione dell'immagine


Il titolo di questa domanda - "Cannot install signed apk". Ti riferisci al debug dell'apk.
KRK

0

File> Struttura progetto> Crea varianti> Seleziona versione> Assicurati che 'Configurazione firma' non sia vuoto> se è selezionato dalla finestra a discesa $signingConfigs.release

L'ho fatto con Android Studio 3.1.4 e mi ha permesso di creare un apk di rilascio dopo aver seguito tutti i passaggi precedenti per creare l'apk di rilascio e la chiave di rilascio e aggiungere le informazioni al gradle dell'app. Saluti!


$signingConfigs.releasenon è disponibile, $signingConfigs.debugè solo disponibile.
KRK

Quindi vai su Build> Genera APK> Seleziona APK e segui le istruzioni.
Treewallie,

0

Ho dovuto affrontare lo stesso problema nella mia applicazione Android. Ho appena aggiornato alcune librerie e quindi creato l'APK di segno. Ora il suo lavoro.


0

Non è necessario disinstallare la versione di Google Play se la firma dell'app di Google Play è abilitata per la tua app, segui i passaggi:
1. Crea una versione firmata della tua app con la chiave di rilascio
2. Vai alla Console per gli sviluppatori di Google Play
3. Crea una versione a circuito chiuso (versione alpha o beta) con la nuova versione firmata della tua app
4. Ora puoi scaricare l'apk firmato da App Signing di Google Play , scegli l' APK derivatoinserisci qui la descrizione dell'immagine

  1. Installa l' APK derivato scaricato

Il motivo è la firma dell'app di Google Play, i segni rilasciano app con chiavi diverse, se hai un'app installata da Play Store e desideri testare la nuova versione dell'app (generata da Android Studio) nel tuo telefono, "App non installata" accade poiché la vecchia versione e la nuova versione erano firmate da due chiavi diverse: una con App Signing di Google Play e una con la tua chiave.



0

Si prega di disinstallare l'app di debug nel dispositivo o semplicemente aumentare il codice della versione per superare questi problemi


0

Nel mio caso stavo cercando di provare l'installazione di un APK firmato e la versione attualmente installata sul mio dispositivo non era firmata (creando una versione di debug direttamente da Android Studio)


0

È ovvio ma per me è stato difficile capirlo

Verifica se il tuo dispositivo mobile ha spazio sufficiente per installare l'apk. e non è pieno.

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.