"Parse Error: Si è verificato un problema durante l'analisi del pacchetto" durante l'installazione dell'applicazione Android


104

Ho ricevuto questo errore durante l'installazione dell'applicazione Android ( Parse Error : There is a problem parsing the package.). Ho eseguito i seguenti passaggi.

  1. La prima volta che ho installato l'applicazione e funziona bene.

  2. Ho apportato modifiche all'applicazione esistente e ho cambiato la versione no nel file Manifest.

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.openintents.samples.BasicOpenARDemo" android:versionCode="2" android:versionName="1.0.1">
  3. Quindi esporto l'applicazione e finisco il processo di firma del codice. Per questo, fare clic con il pulsante destro del mouse sul nodo del progetto> selezionare Esporta. Lì vedrai un mago. Segui i passaggi e completa anche la firma del codice.

  4. Ho ottenuto il file ARDemo.apk, quindi ho cambiato il suo nome in ARDemo1.apk

  5. Quindi ho spedito questo file apk alla scheda SD dei cellulari e ho avviato l'installazione ho ricevuto l'errore sopra.

Ho cercato su Google, dicono che il problema con la decompressione del file manifest.

Qualcuno può dirmi cosa potrebbe esserci di sbagliato in me?


dovresti mettere il numero di versione su tre. fare riferimento al tutorial giapponese sul sito

Ciao Ejder, grazie per la tua risposta. Il mio problema era già stato risolto. Il mio errore è "Ho cambiato manualmente il nome del file apk". Sopra 2 è il codice della mia versione dell'applicazione non il valore minsdk. Ho inserito il valore minsdk come 3. Grazie e saluti, Raghavendra K
Raghu

4
solo pensando perché rinominare è diventato un problema?
Mikey

Ciao Mike, ho cambiato il nome dopo l'esportazione. Ecco perché dà errore. Se specifichiamo un nome diff durante l'esportazione non potrebbe essere un problema per me ..
Raghu

1
Ciao Cru, Cambiare versione no non ha creato questo problema. Ho rinominato il file apk una volta eseguita l'esportazione. Crea questo problema.
Raghu

Risposte:


49

Hai detto che la prima volta che hai installato l'applicazione ha funzionato bene.

L'unica differenza nei passaggi che hai delineato tra le due versioni sono:

  1. Il numero di versione (presumo che questo non abbia contribuito a rompere nulla)
  2. Il codice
  3. Il nome del file .apk

Prova a rinominare il file ARDemo1.apk in ARDemo.apk (assicurati di eseguire il backup della versione precedente) e vedi se questo aiuta. La mia ipotesi è che abbia qualcosa a che fare con il nome dell'apk.

Se ancora non funziona, puoi eliminare il nome del file apk come fonte del problema e iniziare a indagare 2) ricostruendo la tua vecchia versione e vedere se hai di nuovo lo stesso problema. Se il problema non esiste con la versione ricostruita del tuo vecchio codice, allora sai che deve essere qualcosa a che fare con il tuo codice.

Spero che ti porti da qualche parte.

Salute, Joseph


Ciao Joseph, la tua ipotesi è corretta. Ho rinominato il file apk in uno precedente. Funziona ...... Grazie mille per il tuo aiuto .....
Raghu

Ciao, sto affrontando un problema simile. Sto scaricando l'applicazione da un collegamento Web. Si trova perfettamente sulla SDCard mobile. Ma quando provo a installarlo mostra questo errore. Non ho firmato la mia domanda, fondamentalmente sono un principiante nello sviluppo di app Android. È apprezzato l'aiuto di qualsiasi tipo :)
varunrao321

2
Ho affrontato il problema simile e il caso era la versione minima dell'SDK nel file .gradle. Pensa a questo e alla versione del tuo dispositivo e sarà utile.
user2881604

Sì, hai ragione, era il problema del nome del file apk ...!
Arsal Imam

Ho rinominato il file apk e parse errornon c'è più, ma quando si cerca di installarlo ora mi mostra App not installedsto usando un dispositivo di marshmallow e forse la sua stessa come la questione qui stackoverflow.com/questions/33930223/...
natsumiyu

45

L'installazione può fornire l'errore specificato almeno nei seguenti casi:

  • Il nome del pacchetto viene modificato dopo la firma : utilizza il nome esatto del pacchetto firmato (invece, modifica il nome in Manifest)
  • Il pacchetto viene compilato su un livello API superiore : correggere il livello API nel file manifest
  • Il pacchetto viene eseguito dalla scheda SD : esegui (installa) il file apk dalla memoria del telefono OPPURE usa il comando adb per installarlo

Penso che ci siano altre condizioni che possono far sì che ciò accada. Ad esempio, vedere il mio commento sulla risposta di Kansasian di seguito sull'ottenimento di questo messaggio di errore durante l'installazione dall'email.
M Katz

La migliore risposta qui. Per me stava cambiando il nome del pacchetto dopo che era stato firmato. Molte grazie.
Jannie Theunissen

presumo che sia necessario disporre di un telefono con root per poterlo installare utilizzando, adb installgiusto?
abbood

No: il rooting non è richiesto , tuttavia potrebbe essere necessario abilitare Origini sconosciute dalle impostazioni di sicurezza. (non confermato)
jmu

Fonti sconosciute E debug USB ... nota: in Windows 8 a volte non riconosce il telefono in modalità MTP, solo PTP ...
SparK

22

Ho visto l'errore di analisi solo quando la versione di Android sul dispositivo era inferiore alla versione per cui l'app è stata compilata. Ad esempio, se l'app è compilata per il sistema operativo Android v2.2 e il tuo dispositivo ha solo il sistema operativo Android v2.1, riceverai un errore di analisi quando provi a installare l'app.


Sono stato colpito da questo tempo fa, ci sono voluti anni per capirlo!
olafure

14

Il motivo è che l'apk non è firmato. Una volta firmato l'apk, il problema verrà risolto. http://ionicframework.com/docs/guide/publishing.html Utilizzare il collegamento nelle istruzioni per firmare l'apk.


Stesso problema qui. Dopo aver firmato l'apk, ha funzionato come previsto.
Dino Tw

3
Questo era un problema per me con le build Xamarin Android: prima crea un APK in Gestione archivi che non è firmato. Devi quindi scegliere "Distribuisci" per creare un APK firmato che può essere installato.
dodgy_coder

In aggiunta a ciò che ha scritto dodgy_coder: per Xamarin.Android 7 o versioni successive o precedenti .
Veverke

13

Invece di scattare al buio, ottieni il motivo di questo errore installandolo tramite adb:

adb -s emulator-5555 install ~/path-to-your-apk/com.app.apk

Sostituisci emulator-5555con il nome del tuo dispositivo. È possibile ottenere un elenco utilizzando:

adb devices

In caso di fallimento, darà una ragione. Motivi comuni e loro soluzioni:

  1. INSTALL_PARSE_FAILED_NO_CERTIFICATES: Riferimento
  2. INSTALL_FAILED_UPDATE_INCOMPATIBLE: Riferimento

Cosa devo fare se ha avuto successo?
Jacob Sánchez

1
Questo mi ha aiutato molto. Grazie!
Tgo1014

7

Verifica se il tuo dispositivo supporta la versione specificata in minSdkVersion in AndroidManifest.xml. In caso contrario, specificare la versione precedente e riprovare


6

Se stai compilando ed esportando il tuo file apk in SDK versione 2.1, non funzionerà su nessuna versione di Android sotto l'esportazione SDK "2.1". Il software Android è compatibile con le versioni successive non compatibile con le versioni precedenti. Ad esempio, se stai programmando utilizzando il pacchetto Android NDK (ann add-on per Android SDK) che consente lo sviluppo nella famiglia C / C ++, questo è compatibile solo con Android 2.3, Android versione 2.2 e le versioni precedenti supportano solo le build Java. Pertanto riceverai l'errore "Si è verificato un problema durante l'analisi del pacchetto".


3

Un'altra possibilità è che tu abbia salvato il file apk nella cartella PRIVATE dell'applicazione e poi provi ad installarlo (avviando un intento dal tuo codice). in questo caso, quando si avvia intent, viene visualizzato un errore durante l'analisi del pacchetto. In questo caso, l'errore segnalato riguarda problemi di autorizzazione. Il punto è che salvare il file in cartelle private non è una buona pratica, tuttavia se vuoi davvero farlo, dovresti scrivere il file in MODE_WORL_READABLE quando lo scarichi. Tieni presente che MODE_WORLD_READABLE è deprecato e questa soluzione non è la migliore in quanto presenta alcuni problemi di sicurezza. La cosa migliore è salvare il file in una memoria esterna.


3

Non ripeto ciò che viene indicato qui per inserire l'archivio chiavi, la password, ecc. Prova

Crea -> Genera APK firmato -> [Input] --- Avanti ---> seleziona ENTRAMBI

  • V1 (Jar Signature)
  • V2 (firma APK completa)

Non so perché, ma almeno ha funzionato nella mia situazione.


1
Ha funzionato per me. Non è stato verificato in Android Studio MacOS per impostazione predefinita.
vojta

2

Ho ricevuto lo stesso errore (errore di analisi, si è verificato un problema durante l'analisi del pacchetto) durante il tentativo di installare un pacchetto .apk dall'e-mail. Sono stato in grado di aggirare il problema installando il programma di installazione di pacchetti di terze parti ApKatcher:

http://www.addictivetips.com/mobile/install-android-apps-from-gmail/

ApKatcher non è l'unica soluzione. Un mio collega ha aggirato il problema installando Astro File Manager.

Puoi trovare entrambe le applicazioni nel Marketplace Android.


Per aggiungere un altro punto dati qui, ho ricevuto questo errore anche durante l'installazione da e-mail, ma è stato installato correttamente quando ho utilizzato un cavo e un adb per installare lo stesso pacchetto. Sfortunatamente stavo cercando di installare tramite yahoo mail, quindi non penso che ApKatcher possa aiutare.
M Katz

1

Problema simile, utilizzando questo codice "preso in prestito" e leggermente modificato:

                Intent intent = new Intent(Intent.ACTION_VIEW);
                File newApk = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "myapp.apk");
                intent.setDataAndType(Uri.fromFile(newApk), "application/vnd.android.package-archive");
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
                result = true;

Necessario per modificare la creazione del file in questo (virgola invece di più nel costruttore di file, mancava "/" dopo la directory di download):

                    File newApk = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "myapp.apk");

1

Avevo una coppia di tag errata nel mio file manifest.

<meta-data>
</meta-data>

Fondamentalmente sono entrato quando ho copiato un meta-datacodice di esempio errato dal file pdf di payu. Una schifezza.


1

Una ragione potrebbe essere che il nome della tua attività non è definito nel file manifest

    <activity
          android:name=""
          ...>
</activity>

il codice sopra stava creando lo stesso problema con me


1

Un altro problema che causa questo errore può essere l'installazione di APK dal punto di montaggio della scheda SD limitato /mnt/media_rw/MicroSD.

Usa punto di montaggio illimitato /Removable/MicroSD.


1

E solo per aiutare possibili nuovi lettori, un altro motivo potrebbe essere gli errori nel file manifest. Avevo digitato male android:servicecome android.servicee mi sono imbattuto nello stesso errore ...


1

Come accennato da @Veneet Reddy, installalo tramite ADB.

Vai a Bundle ADT / sdk / platform-tools dopo il tuo .apkfile ed esegui il prompt dei comandi come amministratore.

Quindi esegui il adb devicescomando che elencherà i dispositivi collegati o gli emulatori in esecuzione.

inserisci qui la descrizione dell'immagine

Allora corri adb -s yourDeviceID install yourApk.apk

inserisci qui la descrizione dell'immagine

Nota: disinstalla l'app se l'hai già installata prima di installarla di nuovo.


0

Per chiunque altro abbia questo problema, l'unica volta che ho ricevuto questo errore è stato quando la versione dell'API nella configurazione della build Android non corrisponde a quella sul dispositivo fisico.

Entra in Eclipse e fai clic con il pulsante destro del mouse sul tuo progetto e vai alle proprietà. Seleziona Android - CHE TI PORTA A ANDROID BUILD TARGET. Regola il target in modo che corrisponda al dispositivo e verifica se questo risolve il problema.


0

Ho avuto questo problema, anche quando ho specificato la versione corretta di minSDK e targetSDK. Il mio problema era che stavo usando "android:theme="@android:style/Theme.NoTitleBar.Fullscreen"nell'attività di avvio, sul dispositivo Jellybean. Quando ho rimosso questo attributo, ha funzionato.


0

Come un paio di altre risposte hanno menzionato, potrebbero esserci problemi durante l'installazione dalla scheda SD. Nel mio caso stavo distribuendo la mia app tramite allegato e-mail e di solito funzionava bene. Basta aprire l'email e scaricare l'allegato (apparentemente va sulla scheda SD) e fare nuovamente clic su di esso e viene installato.

Ma poi un giorno non ha funzionato, e si è scoperto che era perché avevo il telefono collegato al mio PC di sviluppo tramite USB e che posizionava la scheda SD in una modalità diversa o qualcosa del genere. Quindi la soluzione è stata semplicemente quella di disconnettere il telefono dal PC, quindi inviare nuovamente l'e-mail e scaricare nuovamente l'allegato. Oppure posizionare la connessione USB in modalità "solo ricarica" ​​in modo che la scheda SD non sia "collegata" al PC.


0

Potresti anche controllare i log sul dispositivo per vedere se è qualcosa di semplice come un problema di autorizzazioni. Puoi controllare i log usando adbda un computer host / debug:

adb logcat

Oppure, se hai accesso alla console (o quando usi Android-x86 ottieni console digitando Alt+ F1), puoi controllare i log usando il logcatcomando:

logcat

0

Ho avuto lo stesso problema utilizzando il file apk esportato da android‌ Tools > Export. Ho usato invece il file apk nella cartella bin e ha funzionato!

Il file apk PS nella cartella bin viene creato dopo la prima esecuzione dell'applicazione in eclipse.


0

usalo all'interno di build.gradle (Modulo: app)

 minSdkVersion 14
    targetSdkVersion 28

Dovresti spiegare perché sono state scelte come target le versioni min 14 e 28. Controlla anche la formattazione;)
m02ph3u5

0

Ho avuto questo problema Parse Error : There is a problem parsing the package. che stavo testando su Android-8. Ho lo stesso apk con la stessa firma. Tutto era uguale senza il numero di versione e il nome della versione. L'app veniva installata quando l'ho installata manualmente, ma questo errore si è verificato durante il download e l'installazione degli aggiornamenti a livello di programmazione. Quindi ho trovato la causa del problema.

C'era un'opzione per controllare canRequestPackageInstalls () Quando questo metodo restituisce true, l'app viene installata correttamente. Nel mio caso restituiva sempre falso.

Quindi prima controllo questo e poi consento all'utente di scaricare e installare gli aggiornamenti.

In onCreate ()

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            if (!packageManager.canRequestPackageInstalls()) {
                    startActivityForResult(
                        Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES).setData(
                            Uri.parse(String.format("package:%s", packageName))
                        ), requestCodeqInstallPackage
                    )
                } else {
                    canInstallPackage = true
                }

        }

In onActivityResult ()

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
            if (requestCode == requestCodeqInstallPackage && resultCode == Activity.RESULT_OK) {
                if (packageManager.canRequestPackageInstalls()) {
                    canInstallPackage = true
                }
            } else {
                canInstallPackage = false
                Toast.makeText(mContext, "Auto update feature will not work", Toast.LENGTH_LONG)
                    .show()
            }
    }

Quindi, quando è necessario installare l'aggiornamento,

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
   if(canInstallPackage){
      doInstallAppProcess()
   }else{
        // generate error message
   }
}

Spero che possa aiutare qualcuno.



-1

Sto riscontrando lo stesso messaggio di errore "Parse error: Si è verificato un problema durante l'analisi del pacchetto" con i miei APK firmati come altri, ma sospetto che possa essere causato da motivi diversi.

Per testarlo ho fatto quanto segue:

Imposta Windows 8.1 Eclipse ADT Build: v22.6.2-1085508

Ho generato una tipica nuova app Helloworld che accetta tutte le impostazioni predefinite.

Ho eseguito correttamente l'app su un emulatore e un dispositivo live.

Quindi ho trasferito e installato l'apk sul mio dispositivo live e l'ho eseguito correttamente.

Aveva generato un apk nella cartella bin con una dimensione di 782 KB.

Ho quindi esportato l'app Helloworld nella stessa cartella bin firmando l'app dal mio archivio chiavi che è stata utilizzata con successo in passato per promuovere su Google Play.

Ha creato un APK con una dimensione di 385 KB (sostituendo l'apk originale).

Ho trasferito l'apk sul mio dispositivo e quando sono andato a installarlo ho ricevuto l'errore "Parse error: C'è un problema durante l'analisi del pacchetto" (questo è lo stesso pacchetto che è stato trasferito e installato quando è stato eseguito come modulo non esportato).

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.