Ich entwickle eine kleine Anwendung, die alle auf dem Android-Gerät vorhandenen / installierten Anwendungen auflistet. Aber ich erhalte die folgende Fehlermeldung, während ich versuche, den Code auszuführen.
Installationsfehler: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
Bitte kann mir jemand helfen, diesen Fehler zu beheben.
Antworten:
Es könnte einen anderen Grund für diesen Fehler geben. Das Attribut
Sollte immer mit einem Punkt beginnen, wie:
quelle
Dem Aktivitätsnamen sollte "." Vorangestellt werden. in Ihrer Manifestdatei.
quelle
Ich hatte diesen Fehler, weil ich so Großbuchstaben in meinem Paketnamen hatte
nachdem ich es in so etwas geändert hatte
es wurde gelöst
quelle
Der Fehlercode INSTALL_PARSE_FAILED_MANIFEST_MALFORMED wird von PackageParser.java zurückgegeben, wenn eine große Anzahl von Fehlern in der Datei manifest.xml erkannt wird.
Um den Fehler zu isolieren, schauen Sie in logcat nach (wenn Sie den Befehl 'adb install foo.apk' ausführen). In dem Problem, auf das ich gestoßen bin, enthielt logcat:
In der vierten Zeile oben sehen Sie, dass PackageParser sich darüber beschwert, dass Zeile 214 der Datei manifest.xml "<Anbieter> enthält kein Berechtigungsattribut" . In der folgenden Liste sind alle Fälle in PackageParser aufgeführt, die diesen Fehlercode zurückgeben. (PackageParser ist die einzige Klasse, die den Fehlercode PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED erzeugt.)
In meinem Fall wird die Nachricht "<Anbieter> enthält kein Berechtigungsattribut" in Zeile 2490 von PackagerParser.java in der von parseApplication aufgerufenen Funktion parseProvider erzeugt.
Ab der Version 4.1.1 von Frameworks / base / core / java / android / content / pm / PackageParser.java wird in diesen Methoden in diesen Zeilen auf PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED verwiesen. Wenn auf die Zeilennummer des Quellcodes eine Zeichenfolge in Anführungszeichen folgt, handelt es sich um die in logcat gedruckte Nachricht. Wenn auf die Zeilennummer ein Java-Ausdruck folgt, der der Code ist, der die Rückgabe dieses Fehlercodes verursacht hat, sollte diese Funktion untersucht werden, um festzustellen, warum die Fehlermeldung zurückgegeben wurde. In einigen Fällen konnte ich die Fehlerursache nicht auf einen bestimmten Methodenaufruf beschränken.
Es ist bedauerlich, dass Sie in logcat und der Quelle herumstöbern müssen, um herauszufinden, was ein Problem verursacht.
quelle
IntentFilter.MalformedMimeTypeException
, die ich verpasst habe.Überprüfen Sie Ihren Aktivitätsnamen in der Manifestdatei
oder der Paketname in der Hauptaktivität / Klasse
quelle
Ich habe das gleiche Problem, aber wenn ich den Prozess wie folgt aufrufe:
Wenn ich zu:
Alles beginnt zu funktionieren.
quelle
Ich bin vor einiger Zeit auf dasselbe Problem gestoßen. In den Android- Dokumenten wurde gesagt, wenn Sie nicht ":" als Präfix verwenden
android:process
, sollten Sie einen Kleinbuchstaben verwenden, aber das haben sie nie gesagt, dann sollte es ein paketähnlicher Prozess sein Name, wiecom.company.app.services.MyService
quelle
Jeder Name wie
android:name
,android:process
sollte in Form von Paketnamen sein: beginnt mita..z
, kombiniert mit anderen mit.
, am Ende nicht mit.
...quelle
android:process="com.my_pack.services.MyServiceProcess"
(com.my_pack.services ist das Paket, in dem sich mein Dienst befindet) und der Installationsfehler wird danach nicht mehr angezeigt.Mein Problem war, dass ich geschrieben hatte (Beachten Sie das - vs. das _):
unter einer Aktivität. Dies könnte auch die Ursache für Ihr Problem sein.
quelle
Habe den gleichen Fehler! hatte ein leeres Berechtigungs-Tag und das verursachte das Problem!
quelle
Nach dem Hinzufügen von Lokalisierungen tritt das gleiche Problem auf
Die Zeichenfolge wurde
@string/version_name
versehentlich in eine der neu hinzugefügten lokalisierten Zeichenfolgendateien übergeben (sie wurde nur in den neuen Dateien angezeigt). Nachdem alle Lokalisierungen überprüft und@string/version_name
aus jeder Datei mit Ausnahme des Gebietsschemas entfernt wurden, funktionierte alles wiederquelle
Lesen Sie die Protokolle Ihres Android-Geräts, um diesen Fehler zu diagnostizieren. Erwarten Sie eine Zeile "W / PackageParser", in der das Problem erläutert wird.
quelle
muss VOR definiert werden
quelle
Ich hatte diesen Fehler, weil der Code unten
Als ich geändert habe,
android:mimeType="*"
umandroid:mimeType="*/*"
diesen Fehler zu beheben.quelle
Der von der Aktivität erstellte Namensordner muss aus Kleinbuchstaben bestehen. Verwenden Sie keine Großbuchstaben für den Namen des Aktivitätsordners. Es ist immer besser, Kleinbuchstaben zu verwenden.
quelle
Dies kann viele Gründe haben, aber für mich wurde es gelöst, indem der Name des Pakets durch einen Kleinbuchstaben geändert wurde (Paketname war Aktivitäten, gelöst mit Aktivitäten).
quelle
Wenn Sie Multidex im Manifest verwenden, sollte es mit Wert oder Ressource hinzugefügt werden. Mögen..
ODER
Bereinigen Sie dann das Projekt und installieren Sie die App neu.
quelle
In meinem Fall bezog ich mich auf ein Symbol mit einem Attribut wie dem folgenden:
anstelle des Drawable:
Ich verwende dieses Attribut an mehreren Stellen, aber es scheint nicht im Manifest zu funktionieren.
quelle
Ich erstelle eine neue Anwendung und ziele auf Android Pie ab . Alles hat gut und gut funktioniert. In letzter Zeit stellte ich fest, dass meine Anwendung nicht auf Android Naught und einer niedrigeren Version installiert werden kann von Android OS .
Während der Installation wird eine Fehlermeldung angezeigt
Die von mir vorgenommenen Korrekturen lauten wie folgt und müssen alle nur in einer
AndroidManifest.xml
Datei durchgeführt werden.Für Aktivität, Service, Empfänger und alles
Für Manifest-Berechtigungen
Das waren alles Änderungen, die ich vornehmen musste, damit es auch für Geräte niedrigerer Versionen funktioniert.
quelle
Das Ziel
<activity>
muss vor dem angegeben werden<activity-alias>
.quelle
Es kann andere Dateien geben, die fehlerhaft sind, aber in der IDE nicht hervorgehoben sind, z. B. die res / values / strings, auf die das Manifest möglicherweise für Beschriftungen verweist.
quelle
In meinem Fall war die Ursache das Fehlen des Attributs android: name in <Aktivitätsalias>. Es ist für <Aktivitätsalias> obligatorisch, darf jedoch keine vorhandene Klasse benennen. Lustige Sache ist - das Projekt kompiliert ohne Probleme.
quelle
Mein Problem war wie folgt:
Ich habe meine Berechtigungen folgendermaßen angegeben und es hat nicht funktioniert.
Es hat gut funktioniert, als ich es wie folgt geändert habe:
quelle
Ich hatte diesen Fehler, weil ich die Zeile unten hatte.
Nachdem ich es geändert habe
Problem wurde gelöst
quelle
Nachdem ich mit diesem Problem zu kämpfen hatte, stellte ich fest, dass alle Werte, die als String-Ressourcenwert (auch bekannt als @ string /) in den Manifesten (der Bibliotheken, die Sie ebenfalls verwenden) verwendet werden, nicht Teil der Datei strings.xml von Lokalisierungen sein dürfen . Beispiel: Wenn Ihre Manifest-Datei @ string / app_name verwendet, ist die Definition von string / app_name nur in Ihren Standardwerten / strings.xml und nicht in der alternativen string.xml-Datei zulässig, die Sie für Lokalisierungen bereitstellen. Ich hoffe das hilft..
quelle
Ich hatte den gleichen Fehler. Ich hatte kein Großbuchstaben in meinem Paket- / Anwendungsnamen und bereinigte das Projekt und andere Lösungen halfen mir auch nicht weiter. Immerhin habe ich ein neues Projekt erstellt und meine Sachen Schritt für Schritt in das neue kopiert und überprüft, ob das Problem auftaucht. Immerhin hatte ich ein schönes und fehlerfreies Projekt ohne Redundanz. Manchmal ist es schwierig, die Ursache für diesen Fehler zu finden, sodass es einfacher ist, einen anderen Ansatz zu wählen.
Ich hoffe das hilft jemandem!
quelle
Ich bin auf diesen Fehler gestoßen, als ich die Anwendungsklasse in ein falsches Paket gesteckt habe!
quelle
Sie haben wahrscheinlich die Syntaxregeln eines Tags nicht befolgt. beispielsweise:
Dieses Tag ist unvollständig und verursacht diesen Fehler.
App Manifest Übersicht
quelle
Verwenden Sie
android:resource
in<meta-data>
anstelle vonandroid:src
undandroid:srcCompat
quelle
Ich weiß, dass es spät ist, hier zu antworten, aber ich mache einen seltsamen Fehler, also poste meine Antwort, wenn es jemandem hilft. In meinem Fall habe ich versehentlich die Hauptstartaktivität als Alias hinzugefügt
Wenn ich also versuche, meine App auszuführen, wird ein Fehler angezeigt
Fehler bei der Installation von APK
Ich entferne einfach das Wort "-alias" aus der Aktivitätsregistrierung und meine App wird erfolgreich gestartet.
quelle