"Analysefehler: Beim Parsen des Pakets ist ein Problem aufgetreten" während der Installation der Android-Anwendung

103

Ich habe diesen Fehler bei der Installation der Android-Anwendung ( Parse Error : There is a problem parsing the package.) erhalten. Ich habe die folgenden Schritte ausgeführt.

  1. Zum ersten Mal habe ich die Anwendung installiert und sie funktioniert einwandfrei.

  2. Ich habe Änderungen an der vorhandenen Anwendung vorgenommen und die Versionsnummer in der Manifest-Datei geändert.

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.openintents.samples.BasicOpenARDemo" android:versionCode="2" android:versionName="1.0.1">
  3. Dann exportiere ich die Anwendung und beende den Codesignaturprozess. Klicken Sie dazu mit der rechten Maustaste auf Ihren Projektknoten und wählen Sie Exportieren. Dort sehen Sie einen Assistenten. Befolgen Sie die Schritte und beenden Sie auch die Codesignatur.

  4. Ich habe die Datei ARDemo.apk erhalten und dann ihren Namen in ARDemo1.apk geändert

  5. Dann habe ich diese APK-Datei an die Handy-SD-Karte gesendet und die Installation gestartet. Ich habe den obigen Fehler erhalten.

Ich habe gegoogelt, sie sagen, dass das Problem beim Entpacken der Manifestdatei.

Kann mir jemand sagen, was mit mir los sein könnte?

Raghu
quelle
Sie sollten die Versionsnummer auf drei setzen. Bitte beziehen Sie sich auf das japanische Tutorial auf der Wikitude-Website
Hallo Ejder, Danke für deine Antwort. Mein Problem wurde bereits behoben. Mein Fehler ist "Ich habe den Namen der APK-Datei manuell geändert". In obigem 2 ist mein Anwendungsversionscode nicht der minsdk-Wert. Ich habe den Minsdk-Wert auf 3 gesetzt. Danke und Grüße, Raghavendra K
Raghu
4
Ich denke nur, warum das Umbenennen zu einem Problem wurde.
Mikey
Hallo Mike, ich habe den Namen nach dem Export geändert. Deshalb gibt es Fehler. Wenn wir beim Exportieren einen Diff-Namen angeben, könnte dies für mich kein Problem sein.
Raghu
1
Hallo Cru, das Ändern der Version Nr. Hat dieses Problem nicht verursacht. Ich habe die apk-Datei nach dem Export umbenannt. Es schafft dieses Problem.
Raghu

Antworten:

49

Sie sagten, dass die Anwendung bei der ersten Installation einwandfrei funktioniert hat.

Der einzige Unterschied in den Schritten, die Sie zwischen den beiden Versionen beschrieben haben, ist:

  1. Die Versionsnummer (ich gehe davon aus, dass dies nicht dazu beigetragen hat, etwas zu brechen)
  2. Der Code
  3. Der Name der APK-Datei

Versuchen Sie, die Datei ARDemo1.apk wieder in ARDemo.apk umzubenennen (stellen Sie sicher, dass Sie die ältere Version sichern), und prüfen Sie, ob dies hilfreich ist. Ich vermute, dass es etwas mit dem Namen der apk zu tun hat.

Wenn es immer noch nicht funktioniert, können Sie den Namen der apk-Datei als Ursache des Problems entfernen und mit der Untersuchung beginnen. 2) Erstellen Sie Ihre alte Version neu und prüfen Sie, ob Sie das gleiche Problem erneut haben. Wenn das Problem mit der neu erstellten Version Ihres alten Codes nicht besteht, wissen Sie, dass es etwas mit Ihrem Code zu tun haben muss.

Ich hoffe das bringt dich irgendwohin.

Prost, Joseph

user175750
quelle
Hallo Joseph, deine Vermutung ist richtig. Ich habe die apk-Datei in eine frühere umbenannt. Es funktioniert ...... Vielen Dank für Ihre Hilfe .....
Raghu
Hallo, ich stehe vor einem ähnlichen Problem. Ich lade die Anwendung von einem Weblink herunter. Es sitzt perfekt auf der mobilen SDCard. Aber wenn ich versuche zu installieren, zeigt es diesen Fehler. Ich habe meine Anwendung nicht unterschrieben, im Grunde bin ich ein Neuling in der Entwicklung von Android-Apps. Hilfe jeglicher Art wird geschätzt :)
varunrao321
2
Ich hatte das ähnliche Problem und der Fall war die minimale SDK-Version in der Gradle-Datei. Denken Sie darüber und über die Version Ihres Geräts nach, und das wird hilfreich sein.
user2881604
Ja, Sie haben Recht, das war das Problem des apk-Dateinamens ...!
Arsal Imam
Ich benannte die apk - Datei und die parse errorist weg, aber wenn Sie es installieren jetzt zeigt es mir , App not installedich bin ein Eibisch - Gerät und vielleicht ist es das gleiche wie das Problem hier stackoverflow.com/questions/33930223/...
natsumiyu
45

Die Installation kann zumindest in folgenden Fällen den angegebenen Fehler verursachen:

  • Der Name des Pakets wird nach dem Signieren geändert : Verwenden Sie den genauen Namen wie das signierte Paket (passen Sie stattdessen den Namen im Manifest an).
  • Das Paket wird auf einer höheren API-Ebene kompiliert : Korrigieren Sie die API-Ebene in der Manifest-Datei
  • Das Paket wird von der SD-Karte ausgeführt : Führen Sie die apk-Datei aus dem Telefonspeicher aus (installieren Sie sie) ODER installieren Sie sie mit dem Befehl adb
jmu
quelle
Ich denke, es gibt andere Bedingungen, die dies ermöglichen können. Lesen Sie zum Beispiel meinen Kommentar zur Antwort von Kansasian unten, um diese Fehlermeldung bei der Installation per E-Mail zu erhalten.
M Katz
Beste Antwort hier. Für mich änderte sich der Name des Pakets nach der Unterzeichnung. Vielen Dank.
Jannie Theunissen
Ich gehe davon aus, dass Sie ein gerootetes Telefon benötigen, um es mit adb installrichtig installieren zu können .
Abbood
Nein: Rooting ist nicht erforderlich. Möglicherweise müssen Sie jedoch unbekannte Quellen in den Sicherheitseinstellungen aktivieren. (unbestätigt)
jmu
Unbekannte Quellen UND USB-Debugging ... Hinweis: In Windows 8 wird das Telefon im MTP-Modus manchmal nicht erkannt, nur PTP ...
SparK
22

Ich habe den Parsing-Fehler nur gesehen, wenn die Android-Version auf dem Gerät niedriger war als die Version, für die die App kompiliert wurde. Wenn die App beispielsweise für Android OS v2.2 kompiliert wurde und Ihr Gerät nur über Android OS v2.1 verfügt, wird beim Versuch, die App zu installieren, ein Analysefehler angezeigt.

Sir Scalawag
quelle
Das hat mich vor einiger Zeit getroffen, es hat ewig gedauert, es herauszufinden!
Olafure
14

Der Grund ist, dass apk nicht unterschrieben ist. Sobald die apk unterschrieben ist, wird das Problem behoben. http://ionicframework.com/docs/guide/publishing.html Bitte verwenden Sie den Link in den Anweisungen, um die apk zu unterschreiben.

Shivendra
quelle
Selbes Problem hier. Nach der Unterzeichnung der apk funktionierte es wie erwartet.
Dino Tw
3
Dies war ein Problem für mich mit Xamarin Android-Builds - es wird zuerst eine APK im Archiv-Manager erstellt, die nicht signiert ist. Sie müssen dann "Verteilen" auswählen, um eine signierte APK zu erstellen, die installiert werden kann.
dodgy_coder
Hinzufügen zu dem, was dodgy_coder geschrieben hat: für Xamarin.Android 7 oder höher oder frühere Versionen .
Veverke
13

Anstatt im Dunkeln zu fotografieren, ermitteln Sie den Grund für diesen Fehler, indem Sie ihn über Folgendes installieren adb:

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

Ersetzen Sie emulator-5555durch Ihren Gerätenamen. Sie können eine Liste erhalten mit:

adb devices

Wenn dies fehlschlägt, wird ein Grund angegeben. Häufige Gründe und deren Korrekturen:

  1. INSTALL_PARSE_FAILED_NO_CERTIFICATES: Referenz
  2. INSTALL_FAILED_UPDATE_INCOMPATIBLE: Referenz
Veneet Reddy
quelle
Was mache ich, wenn es gelungen ist?
Jacob Sánchez
1
Das hat mir sehr geholfen. Vielen Dank!
Tgo1014
7

Überprüfen Sie, ob Ihr Gerät die Version unterstützt, die Sie in minSdkVersion in AndroidManifest.xml angegeben haben. Wenn nicht, geben Sie die niedrigere Version an und versuchen Sie es erneut

Mohammed Irfan Tirupattur
quelle
6

Wenn Sie Ihre APK-Datei unter SDK Version 2.1 kompilieren und exportieren, funktioniert sie auf keiner Android-Version unter Ihrem SDK-Export "2.1". Android-Software ist vorwärtskompatibel, nicht abwärtskompatibel. Wenn Sie beispielsweise mit dem Android NDK-Paket (Ann Add-On zum Android SDK) programmieren, das die Entwicklung in der C / C ++ - Familie ermöglicht, ist dies nur mit Android 2.3, Android Version 2.2 und niedriger kompatibel und unterstützt nur Java Builds. Daher wird der Fehler "Beim Parsen des Pakets ist ein Problem aufgetreten" erneut angezeigt.

Mike
quelle
3

Eine andere Möglichkeit besteht darin, dass Sie die apk-Datei im Ordner PRIVATE der Anwendung gespeichert haben und dann versuchen, sie zu installieren (indem Sie eine Absicht von Ihrem Code aus starten). In diesem Fall erhalten Sie beim Starten der Absicht ein Fehleranalysepaket. In diesem Fall handelt es sich bei dem ausgelösten Fehler um Berechtigungsprobleme. Das Speichern der Datei in privaten Ordnern ist keine gute Vorgehensweise. Wenn Sie dies jedoch wirklich tun möchten, sollten Sie beim Herunterladen eine Datei in MODE_WORL_READABLE schreiben. Bitte beachten Sie, dass MODE_WORLD_READABLE veraltet ist und diese Lösung nicht die beste ist, da sie einige Sicherheitsprobleme aufweist. Am besten speichern Sie Ihre Datei in einem externen Speicher.

MojAmiri
quelle
3

Ich wiederhole nicht, was hier angewiesen ist, den Schlüsselspeicher, das Passwort usw. einzugeben. Versuchen Sie es

Erstellen -> Signierte APK generieren -> [Eingabe] --- Weiter ---> BEIDE auswählen

  • V1 (Jar Signature)
  • V2 (vollständige APK-Signatur)

Ich weiß nicht warum, aber zumindest hat es in meiner Situation funktioniert.

JeffNhan
quelle
1
Hat für mich gearbeitet. Es wurde standardmäßig nicht in Android Studio MacOS aktiviert.
Vojta
2

Ich habe den gleichen Fehler (Analysefehler, es gibt ein Problem beim Parsen des Pakets) erhalten, als ich versucht habe, ein APK-Paket per E-Mail zu installieren. Ich konnte das Problem umgehen, indem ich das Paketinstallationsprogramm ApKatcher eines Drittanbieters installierte:

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

ApKatcher ist nicht die einzige Lösung. Ein Kollege von mir hat das Problem durch die Installation von Astro File Manager umgangen.

Sie finden beide Anwendungen im Android Marketplace.

kansasian
quelle
Um hier einen weiteren Datenpunkt hinzuzufügen, wurde dieser Fehler auch bei der Installation per E-Mail angezeigt, aber er wurde einwandfrei installiert, als ich ein Kabel und adb zur Installation desselben Pakets verwendete. Leider habe ich versucht, per Yahoo Mail zu installieren, daher glaube ich nicht, dass ApKatcher helfen könnte.
M Katz
1

Ähnliches Problem bei Verwendung dieses "geliehenen" und leicht modifizierten Codes:

                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;

Erforderlich, um die Dateierstellung in diese zu ändern (Komma anstelle von Plus im Dateikonstruktor fehlte '/' nach dem Download-Verzeichnis):

                    File newApk = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "myapp.apk");
William T. Mallard
quelle
1

Ich hatte ein schlechtes Tag-Paar in meiner Manifest-Datei.

<meta-data>
</meta-data>

Grundsätzlich bin ich meta-datareingekommen, als ich einen schlechten Beispielcode aus der Payu-PDF-Datei kopiert habe . Mist.

Siddharth
quelle
1

Ein Grund könnte sein, dass der Name Ihrer Aktivität im Manifest nicht definiert ist

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

Der obige Code hat das gleiche Problem bei mir verursacht

Abhishek
quelle
1

Ein weiteres Problem, das diesen Fehler verursacht, kann die Installation von APK von einem eingeschränkten SD-Karten-Mountpunkt sein /mnt/media_rw/MicroSD .

Verwenden Sie einen uneingeschränkten Einhängepunkt /Removable/MicroSD.

Honza
quelle
1

Ein weiterer Grund können Fehler in der Manifestdatei sein, um möglichen neuen Lesern zu helfen. Ich hatte android:serviceals falsch getippt android.serviceund bin auf den gleichen Fehler gestoßen ...

MortenSickel
quelle
1

Wie von @Veneet Reddy erwähnt, installieren Sie es über ADB.

Gehen Sie zu ADT Bundle / sdk / platform-tools vorbei.apk Datei und führen Sie die Eingabeaufforderung als Administrator aus.

Führen Sie dann den adb devicesBefehl aus, der die verbundenen Geräte oder Emulatoren auflistet, die ausgeführt werden.

Geben Sie hier die Bildbeschreibung ein

Dann renne adb -s yourDeviceID install yourApk.apk

Geben Sie hier die Bildbeschreibung ein

Hinweis: Deinstallieren Sie die App, wenn Sie sie bereits installiert haben, bevor Sie sie erneut installieren.

Muhammad
quelle
0

Für alle anderen, die dieses Problem haben, war das einzige Mal, dass ich diesen Fehler bekam, wenn die API-Version in Ihrer Android Build-Konfiguration nicht mit der auf dem physischen Gerät übereinstimmt.

Gehen Sie in Eclipse und klicken Sie mit der rechten Maustaste auf Ihr Projekt und gehen Sie zu Eigenschaften. Wählen Sie Android - WAS SIE ZUM ANDROID BUILD TARGET BRINGT. Passen Sie Ihr Ziel an das Gerät an und prüfen Sie, ob das Problem dadurch behoben wird.

j2emanue
quelle
0

Ich hatte dieses Problem, auch wenn ich die richtige minSDK- und targetSDK-Version angegeben habe. Mein Problem war, dass ich "android:theme="@android:style/Theme.NoTitleBar.Fullscreen"in der Launcher-Aktivität auf einem Jellybean-Gerät verwendet habe. Als ich dieses Attribut entfernte, funktionierte es.

user1035292
quelle
0

Wie in einigen anderen Antworten erwähnt, kann es bei der Installation von der SD-Karte zu Problemen kommen. In meinem Fall habe ich meine App per E-Mail-Anhang verteilt und es hat normalerweise gut funktioniert. Öffnen Sie einfach die E-Mail und laden Sie den Anhang herunter (er geht anscheinend auf die SD-Karte) und klicken Sie erneut darauf, und er wird installiert.

Aber eines Tages funktionierte es nicht und es stellte sich heraus, dass ich das Telefon über USB an meinen Entwicklungs-PC angeschlossen hatte und dadurch die SD-Karte in einen anderen Modus versetzt wurde oder so. Die Lösung bestand also einfach darin, das Telefon vom PC zu trennen, die E-Mail erneut zu senden und den Anhang erneut herunterzuladen. Oder versetzen Sie die USB-Verbindung in den Modus "Nur aufladen", damit die SD-Karte nicht mit dem PC "verbunden" ist.

RenniePet
quelle
0

Möglicherweise möchten Sie auch die Protokolle auf dem Gerät überprüfen, um festzustellen, ob es sich um ein einfaches Berechtigungsproblem handelt. Sie können die Protokolle adbvon einem Host- / Debug-Computer aus überprüfen :

adb logcat

Wenn Sie Zugriff auf die Konsole haben (oder bei Verwendung von Android-x86 die Konsole durch Eingabe von Alt+ abrufen F1), können Sie die Protokolle mithilfe des folgenden logcatBefehls überprüfen :

logcat
Pierz
quelle
0

Ich hatte das gleiche Problem mit der aus exportierten apk-Datei android‌ Tools > Export. Ich habe stattdessen die apk-Datei im bin- Ordner verwendet und es hat funktioniert!

Die PS-Apk-Datei im Ordner bin wird erstellt, nachdem Sie die Anwendung zum ersten Mal in Eclipse ausgeführt haben.

Ali Sheikhpour
quelle
0

Verwenden Sie es in build.gradle (Modul: App)

 minSdkVersion 14
    targetSdkVersion 28
SHUBHASIS MAHATA
quelle
Sie sollten erklären, warum min Version 14 und 28 als Ziel ausgewählt wurden. Überprüfen Sie auch Ihre Formatierung;)
m02ph3u5
0

Ich hatte dieses Problem, das Parse Error : There is a problem parsing the package. ich auf Android-8 getestet habe. Ich habe die gleiche apk mit der gleichen Unterschrift. Alles war gleich ohne die Versionsnummer und den Versionsnamen. Die App wurde installiert, als ich sie manuell installierte, aber dieser Fehler trat auf, als ich Updates programmgesteuert herunterlud und installierte. Dann habe ich meine Problemursache gefunden.

Es gab eine Option zum Überprüfen von canRequestPackageInstalls (). Wenn diese Methode true zurückgibt, wird die App erfolgreich installiert. In meinem Fall war es immer falsch.

Also überprüfe ich dies zuerst und lasse den Benutzer dann Updates herunterladen und installieren.

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()
            }
    }

Dann, wenn das Update installiert werden muss, dann-

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

Hoffe es wird jemandem helfen.

Rasel
quelle
-1

Ich habe die gleiche Fehlermeldung "Analysefehler: Es gibt ein Problem beim Parsen des Pakets" mit meinen signierten APKs wie andere, aber ich vermute, dass dies aus verschiedenen Gründen verursacht werden kann.

Um dies zu testen, habe ich Folgendes getan:

Einrichten von Windows 8.1 Eclipse ADT Build: v22.6.2-1085508

Ich habe eine typische neue Helloworld-App generiert, die alle Standardeinstellungen akzeptiert.

Ich habe die App auf einem Emulator und einem Live-Gerät erfolgreich ausgeführt.

Ich habe dann die apk seitlich geladen und auf meinem Live-Gerät installiert und erfolgreich ausgeführt.

Es hatte eine apk im bin-Ordner mit einer Größe von 782 KB generiert.

Anschließend habe ich die Helloworld-App in denselben Bin-Ordner exportiert und die App aus meinem Schlüsselspeicher signiert, der in der Vergangenheit erfolgreich für die Werbung für Google Play verwendet wurde.

Es wurde eine APK mit einer Größe von 385 KB erstellt (anstelle der ursprünglichen apk).

Ich habe die apk seitlich auf mein Gerät geladen und als ich sie installierte, bekam ich den Fehler "Analysefehler: Es gibt ein Problem beim Parsen des Pakets" (dies ist das gleiche Paket, das seitlich geladen und installiert wurde, wenn es als nicht exportiertes Formular ausgeführt wurde).

William Bell
quelle