Home / Android-Entwicklung / AndroidManifest.xml: Alles, was Sie wissen müssen

AndroidManifest.xml: Alles, was Sie wissen müssen

Unabhängig von der Art der App, die Sie erstellen, muss jede einzelne Android-Anwendung eine Manifest-Datei enthalten.

AndroidManifest.xml ist eine der wichtigsten Dateien in Ihrer gesamten . Projekt, das wichtige Informationen für die Android-Build-Tools, das Android-Betriebssystem und den Google Play Store bereitstellt.

Read More: Eine Einführung in XML für neue Android-Entwickler

Wenn das AndroidManifest Ihrer App .xml ist nicht richtig eingerichtet, dann können Sie auf eine Vielzahl von Problemen stoßen – möglicherweise kann das Android-System nicht alle Ihre Aktivitäten und Dienste finden. Möglicherweise lässt der Google Play Store das Herunterladen Ihrer App auf vollständig inkompatible Geräte zu, oder Ihre App kann möglicherweise nicht auf die erforderlichen Systemfunktionen und -informationen zugreifen, um eine gute Nutzererfahrung zu erzielen.

In diesem Artikel wird I Hier erfahren Sie alles, was Sie über die Datei AndroidManifest.xml wissen müssen, angefangen von den Manifest-Attributen, die in jedem einzelnen Android-Projekt vorhanden sind, bis hin zur Kommunikation mit anderen Anwendungen über Absichtsfilter und sogar wie Zusammenführen mehrerer Manifeste in demselben Android-Projekt.

Weitere Informationen: Lernen Sie Android Studio und die Dateien kennen, aus denen Ihre Apps bestehen.

Entdecken Sie das Standardmanifest von Android Studio.

Wenn Sie ein Android erstellen Wenn Sie ein Projekt mit Android Studio erstellen, wird automatisch eine einzige Manifest-Datei für Sie generiert und anschließend mit allen Elementen gefüllt, die für die Ausführung dieses Projekts auf einem Android-Gerät erforderlich sind.

 Android-Manifest-Beispiel

Der folgende Code ist das automatisch generierte Manifest für ein Projekt, das ich mit der Vorlage "Leere Aktivität" von Android Studio erstellt habe:





















Die meisten Manifest-Einträge bestehen aus einem Element und einem Attribut. Wenn Sie mehr als ein Attribut für dasselbe Element angeben müssen, wiederholen Sie dieses Element in der Regel mit anderen Attributen, anstatt demselben Element mehrere Attribute hinzuzufügen. Zum Beispiel deklarieren wir hier mehrere Attribute für das Element :







Das Android-Manifest kann eine Vielzahl verschiedener Elemente unterstützen, aber es gibt einige, die in so ziemlich jeder einzelnen AndroidManifest.xml-Datei enthalten sind:

1. Paketname

Das Manifest-Stammelement muss den Paketnamen Ihrer App angeben, der normalerweise mit der Verzeichnisstruktur Ihres Projekts übereinstimmt. Beispiel:







 // Das Manifest-Stammelement //










...
...
...

Wenn es Zeit ist, Ihr Projekt in das endgültige Anwendungspaket (APK) zu integrieren, verwenden die Android-Build-Tools diesen Paketnamen als Namespace für die von Ihrem Projekt generierte R.java-Klasse. Im obigen Manifest wird die R-Klasse beispielsweise unter com.jessicathornsby.myapplication.R erstellt.

Die Build-Tools verwenden diesen Paketnamen auch, um alle Klassen aufzulösen, die Sie in der Manifest-Datei deklariert haben. Beispiel: wird durch meine Anwendung in com.jessicathorns aufgelöst.

Nach dem Auflösen der Manifest-Klassennamen und des Namensraums für die R-Klasse verwerfen die Build-Tools Ihren Paketnamen und ersetzen ihn durch die Eigenschaft "applicationID" aus Ihrem Projekt build.gradle datei.






 android {
   compileSdkVersion 'android-Q'
   defaultConfig {
       applicationId "com.jessicathornsby.myapplication"
...
...
... 

Mit dieser "applicationID" wird Ihre App sowohl auf dem Gerät als auch im Google Play Store eindeutig identifiziert.

Anfangs stimmt die Anwendungs-ID mit dem Paketnamen überein, den Sie beim Erstellen Ihres Projekts ausgewählt haben Sie können die Anwendungs-ID und den Paketnamen jederzeit manuell ändern.

Wenn Sie den Paketnamen bearbeiten, muss der in Ihrem Manifest definierte Wert mit dem in Ihrem Projektverzeichnis definierten Paketnamen übereinstimmen. Wenn diese beiden Werte nicht übereinstimmen, kann Ihr Manifest die App-Komponenten nicht identifizieren und die R-Klasse wird nicht korrekt aufgelöst.

Wenn Sie den Paketnamen ändern müssen, sollten Sie Android verwenden Die Refactoring-Tools von Studio stellen sicher, dass der Paketname in Ihrem Android-Projekt konsistent bleibt:

  • Wählen Sie im Bereich „Projekt“ von Android Studio das kleine Zahnradsymbol.
  • Deaktivieren Sie „Leere mittlere Pakete komprimieren“. Ihr Paketverzeichnis wird nun als einzelne Verzeichnisse angezeigt.

 Anleitung zum Android-Manifest

  • Klicken Sie bei gedrückter Ctrl-Taste auf jedes Verzeichnis, das Sie umbenennen möchten, und wählen Sie dann "Refactor> Umbenennen".
  • Wählen Sie "Paket umbenennen".
  • Geben Sie im darauffolgenden Popup den Namen Ihres neuen Pakets ein und wählen Sie dann „Refactor“.
  • Am unteren Rand von Android Studio sollte nun ein neues Bedienfeld für die „Refactoring-Vorschau“ angezeigt werden. Überprüfen Sie die Ausgabe sorgfältig und beheben Sie alle Probleme.
  • Wenn Sie fortfahren möchten, klicken Sie auf „Refactor ausführen“. Ihr Paket wird jetzt umbenannt.

Aktivitäten, Dienste, Broadcast-Empfänger und mehr: Grundlegendes zu den App-Komponenten

Im Manifest deklarieren Sie jede Ihrer Anwendungskomponenten, die die verschiedenen Einstiegspunkte in Ihre App darstellen. In der Regel wird eine Komponente, die nicht im Manifest aufgeführt ist, vom Android-System nicht angezeigt und wird auch nicht ausgeführt.

In Android gibt es vier verschiedene Arten von App-Komponenten: Aktivitäten, Dienste, Rundfunkempfänger und Inhaltsanbieter. In diesem Abschnitt werde ich Ihnen zeigen, wie Sie jede dieser häufig verwendeten Android-Komponenten in Ihrem Manifest registrieren.

Aktivitäten: Die Hauptkomponente von Android

Um eine Aktivität zu registrieren, öffnen Sie Ihr Manifest und fügen Sie eine Element als Kind des Elements, zum Beispiel:



    

  

Das einzige erforderliche Attribut für ist android: name, das den Klassennamen der Aktivität angibt. Dieser Klassenname sollte vollständig qualifiziert sein, obwohl Sie "." Als Kurzform für den Paketnamen Ihrer App verwenden können. Beispielsweise wird im folgenden Snippet ".ShareActivity" in "com.jessicathornsby.myapplication.MyActivity" aufgelöst.






       

       

  

Wenn Ihre App Komponenten enthält, die sich in anderen Unterpaketen befinden, müssen Sie den vollqualifizierten Paketnamen verwenden.

Ausführen von Vorgängen mit langer Laufzeit: Dienste

Ein Dienst ist eine Komponente, die ausgeführt werden kann Langfristige Vorgänge im Hintergrund, z. B. das Abrufen von Daten über das Netzwerk, ohne den Haupt-UI-Thread von Android zu blockieren. Sie können einen Dienst starten und im Hintergrund laufen lassen oder einen Dienst an eine andere Komponente binden, sodass diese Komponente mit dem Dienst interagieren kann.

Sie deklarieren einen Dienst im Manifest Ihrer App, indem Sie einen hinzufügen ] Element als untergeordnetes Element Ihres Elements.

Es gibt eine Liste von Attributen, mit denen Sie das Verhalten eines Dienstes steuern können. Sie müssen jedoch mindestens den Namen des Dienstes (android: name) und a angeben beschreibung (android: beschreibung). In dieser Beschreibung wird die Arbeit erläutert, für die dieser Dienst verantwortlich ist. Dazu wird eine Zeichenfolgenressource verwendet, die dem Benutzer angezeigt wird. Benutzer können überprüfen, welche Dienste auf ihrem Gerät ausgeführt werden, und jeden Dienst jederzeit beenden. Durch die Angabe einer überzeugenden Beschreibung können Sie die Wahrscheinlichkeit verringern, dass der Benutzer Ihren Dienst beendet.

Im folgenden Snippet registriere ich einen "MySevice" -Dienst in unserem Manifest:



     




   

Wenn Sie in Ihrem Manifest keinen Dienst deklarieren, wird dieser vom System nicht angezeigt und niemals ausgeführt.

Empfangen von Absichten: BroadcastReceivers

Ein BroadcastReceiver ist eine Komponente, die Ihre App ermöglicht um außerhalb des normalen Benutzerflusses auf Broadcast-Nachrichten vom Android-System und anderen Anwendungen zu antworten – auch wenn Ihre App gerade nicht ausgeführt wird.

Das Android-System leitet automatisch eine Broadcast-Nachricht an alle Anwendungen weiter, die für den Empfang dieser Nachrichten eingerichtet sind bestimmte Art von Absicht der Sendung. Durch die Implementierung eines oder mehrerer BroadcastReceiver kann Ihre App auf Ereignisse reagieren, die außerhalb des Anwendungskontexts stattfinden. Stellen Sie sich beispielsweise vor, Ihre App muss gelegentlich eine akkuintensive Aufgabe ausführen. Sie können eine bessere Benutzererfahrung erzielen, indem Sie diese Aufgabe verzögern, bis das Gerät aufgeladen wird. Wenn Sie sich für den Empfang der Broadcast-Aktion ACTION_POWER_CONNECTED registrieren, wird Ihre App benachrichtigt, sobald das Gerät an eine Steckdose angeschlossen ist. Dies ist der ideale Zeitpunkt, um batterieintensive Vorgänge durchzuführen.

Um einen BroadcastReceiver dem System bekannt zu machen, müssen Sie muss in deinem Manifest mit einem -Element deklariert werden. Sie können dann einen oder mehrere Absichtsfilter verwenden, um anzugeben, auf welche Broadcast-Aktionen der Empfänger reagieren soll. Zum Beispiel deklarieren wir hier einen "MyBroadcastReceiver", der auf die Broadcast-Aktion ACTION_POWER_CONNECTED reagiert.



  

    

  

Im Gegensatz zu den anderen App-Komponenten können Sie das Manifest umgehen und einen BroadcastReceiver in Ihrem Anwendungscode registrieren, indem Sie einen IntentFilter erstellen und anschließend registerReceiver (BroadcastReceiver, IntentFilter) aufrufen.

Durchführen der Kommunikation zwischen Prozessen: Inhaltsanbieter

Ein Inhaltsanbieter ist eine konsistente Standardschnittstelle, die Daten in einem Prozess mit Code verbindet, der in einem anderen Prozess ausgeführt wird.

Mit Inhaltsanbietern können Sie Daten an einem beliebigen dauerhaften Speicherort speichern, auf den Ihre Anwendung zugreifen kann, z das Dateisystem oder eine SQLite-Datenbank. Diese Komponente bietet auch einen einheitlichen Ansatz für die gemeinsame Nutzung von Daten mit anderen Anwendungen und definiert Mechanismen für die Datensicherheit. Sie können beispielsweise einen Inhaltsanbieter verwenden, um Daten nur für Ihre Anwendung zugänglich zu machen. Konfigurieren Sie unterschiedliche Berechtigungen zum Lesen und Schreiben von Daten, und ermöglichen Sie sogar Anwendungen von Drittanbietern, Ihre Daten auf sichere Weise zu ändern.

Durch die Verwendung von Inhaltsanbietern in Ihrer App können Sie einen Großteil der Komplexität, die normalerweise mit dem Speichern von Daten verbunden ist, abstrahieren. und Freigeben dieser Daten für andere Anwendungen.

Bevor Ihre App Daten von einem Inhaltsanbieter abrufen kann, müssen Sie die Lesezugriffsberechtigung für diesen bestimmten Anbieter anfordern. Der Name der Lesezugriffsberechtigung variiert zwischen den Inhaltsanbietern. Weitere Informationen finden Sie in der Dokumentation des Anbieters. Der Benutzerwörterbuchanbieter definiert beispielsweise die Berechtigung android.permission.READ_USER_DICTIONARY. Wenn wir diesen Anbieter also lesen möchten, müssen wir unserem Manifest Folgendes hinzufügen:

Weitere Möglichkeiten zum Starten Ihrer Komponenten: Implizite Absichten

Beim Deklarieren einer App-Komponente können Sie eine Vielzahl zusätzlicher Funktionen definieren, einschließlich Absichtsfilter, die beschreiben, wie eine Aktivität, ein Dienst oder ein BroadcastReceiver gestartet werden kann. [19659002] App-Komponenten können von Komponenten in Ihrer Anwendung oder von Komponenten außerhalb Ihrer Anwendung gestartet werden. Wenn Sie beispielsweise möchten, dass Ihre Benutzer ein Profilbild hochladen, können Sie eine eigene Kameraaktivität erstellen aber die meisten Benutzer haben bereits mindestens eine Kamera-App auf ihrem Mobilgerät installiert. Warum sparen Sie sich nicht etwas Zeit, indem Sie implizite Absichten verwenden, um eine Anwendung zu starten, die bereits über die erforderliche Kamerafunktionalität verfügt?

Jedes Mal, wenn eine App eine Absicht auslöst, sucht das Android-System nach einer oder mehreren Komponenten, die diese Absicht verarbeiten können. durch Untersuchen des Manifests jeder App auf Absichtsfilter . Ein Absichtsfilter gibt die Art der Absicht an, die eine Komponente verarbeiten kann. Wenn das Android-System eine Übereinstimmung findet, wird die entsprechende Komponente des Absichtsfilters gestartet. Wenn ein Gerät über mehrere Apps verfügt, die eine Absicht verarbeiten können, zeigt das System dem Benutzer ein Dialogfeld an, in dem er auswählen kann, welche Anwendung er verwenden möchte.

Sie erstellen einen Absichtsfilter mithilfe einer Kombination von Aktionen , Daten und Kategorieelemente, abhängig von der Art der Absicht, die Sie behandeln möchten. Zum Beispiel erstellen wir hier ein das eine ACTION_CALL-Absicht verarbeiten kann, wenn der Datentyp Text ist:


 // Diese Aktivität ist der Haupteinstiegspunkt in Ihre App //















 // Die Aktion, die diese Komponente akzeptiert //

    





// Die Absichtskategorie, die diese Komponente akzeptiert //

    





// Der Datentyp, den diese Komponente akzeptiert, z. B. Schema, Host, Port oder Pfad //

        

    

Im obigen Beispiel können Benutzer CallActivity durch Navigieren durch MainActivity starten. Sie können CallActivity jedoch auch direkt von jeder anderen Anwendung aus starten, die einen entsprechenden impliziten Intent ausgibt.

Beachten Sie, dass Sie zum Empfangen impliziter Intents die Kategorie CATEGORY_DEFAULT in jeden Ihrer Intent-Filter aufnehmen müssen. Wenn Sie diese Kategorie nicht in einem Absichtsfilter deklarieren, werden keine impliziten Absichten in der entsprechenden Komponente aufgelöst.

Zugreifen auf geschützte Funktionen und Informationen: Android-Berechtigungsmodell

Android trägt zum Schutz der Privatsphäre des Benutzers über ein System von bei Berechtigungen. Standardmäßig kann keine Anwendung einen Vorgang ausführen, der sich negativ auf andere Apps, das Android-Betriebssystem oder den Benutzer auswirken kann, z. B. das Lesen der Kontakte des Benutzers oder den Zugriff auf die Kamera des Geräts.

Wenn für Ihre App der Zugriff auf vertrauliche Informationen oder geschützte Teile erforderlich ist des Android-Betriebssystems müssen Sie die Erlaubnis einholen.

Der erste Schritt besteht darin, jede Erlaubnisanforderung im Manifest Ihrer App über ein -Element zu deklarieren. Android unterstützt eine lange Liste von Berechtigungen. Daher müssen Sie auch die eindeutige Bezeichnung der Berechtigung angeben. Wenn für Ihre App beispielsweise der Zugriff auf den genauen Standort des Nutzers erforderlich ist, fügen Sie Folgendes zu Ihrem Manifest hinzu:







    

In Android 6.0 (API-Stufe 23) und höher müssen Sie auch jede Berechtigung zur Laufzeit anfordern, wenn für Ihre App diese bestimmte Berechtigung erforderlich ist. Jedes Mal, wenn Ihre App eine Anforderung ausgibt, zeigt das System einen Dialog an, der den Benutzer darüber informiert, auf welche Berechtigungsgruppe Ihre Anwendung zugreifen möchte.

Wenn der Benutzer Ihre Berechtigungsanforderung erteilt, erhalten Sie Zugriff auf die zugeordneten Funktionen oder Informationen . Wenn der Benutzer Ihre Anforderung ablehnt, müssen Sie diese Ablehnung ordnungsgemäß handhaben. Sie können beispielsweise Funktionen deaktivieren, für die die fehlende Berechtigung erforderlich ist, oder eine Meldung anzeigen, in der erläutert wird, warum diese Funktion nicht verfügbar ist, wenn der Benutzer versucht, darauf zuzugreifen .

Wenn auf dem Gerät Android 5.1.1 (API-Stufe 22) oder niedriger ausgeführt wird, fordert das System den Benutzer zum Zeitpunkt der Installation auf, alle im Manifest Ihrer Anwendung aufgeführten Berechtigungen zu erteilen.

Wir behandeln die Laufzeit von Android Das Berechtigungsmodell im Detail finden Sie unter Was sind Android-App-Berechtigungen und wie implementieren Entwickler sie?

Nicht jede Berechtigung löst den Anforderungsdialog von Android aus, da einige Berechtigungen als "normal" eingestuft werden, einschließlich gängiger Internetberechtigungen wie android.permission.INTERNET android.permission.ACCESS_NETWORK_STATE.

Wenn Sie in Ihrem Manifest eine "normale" Berechtigung deklarieren, gewährt das System diese Anforderung bei der Installation automatisch und der Benutzer kann nicht t o widerrufen. Da der Benutzer zur Laufzeit nicht die Option hat, "normale" Berechtigungen zu erteilen oder zu verweigern, müssen Sie diese Berechtigungen einfach im Manifest Ihrer App deklarieren.

Sie können überprüfen, ob eine bestimmte Berechtigung "normal" oder "gefährlich" ist. Wenn Sie diese Berechtigung in den offiziellen Android-Dokumenten finden und dann die „Schutzstufe“ überprüfen, müssen Sie sich darüber im Klaren sein, dass neue Versionen der Android-Plattform manchmal Einschränkungen unterliegen, die Ihre App möglicherweise irgendwann benötigt um eine Erlaubnis anzufordern, die vorher nicht benötigt wurde. Um zu vermeiden, dass Ihre App auf neueren Android-Versionen beschädigt wird, überprüft das System das targetSdkVersion-Attribut Ihrer App und wendet dann alle relevanten neuen Berechtigungen auf Ihr Manifest an.

Dies ist zwar nicht der Fall, der Ihre Anwendung auf der neuesten Version sofort beschädigt von Android ist dies keine Entschuldigung, um Ihre App nicht zu aktualisieren! Um sicherzustellen, dass Sie die bestmögliche Benutzererfahrung bieten, sollten Sie immer Ihre App mit der neuesten Version vergleichen und alle erforderlichen Änderungen vornehmen, einschließlich des Hinzufügens neuer Berechtigungen zum Manifest Ihrer App.

Gerätekompatibilität: Steuern, wer Ihre App herunterlädt

Möglicherweise erfordert Ihre Anwendung Zugriff auf bestimmte Hardware oder Software. Da derzeit so viele verschiedene Android-Geräte auf dem Markt sind, kann nicht garantiert werden, dass Ihre Anwendung Zugriff auf bestimmte Hardware- oder Softwareteile hat.

Wenn für Ihre App ein bestimmtes Hardwareteil erforderlich ist Wenn Sie eine gute Benutzererfahrung erzielen möchten, ist es wichtig, dass Ihre App nicht auf einem Gerät ausgeführt wird, auf dem diese wesentliche Funktionalität fehlt.

Sie können die Hardware- und Softwareanforderungen Ihrer App angeben, indem Sie Elemente hinzufügen dein Manifest. Wenn Ihre App beispielsweise ihre Kernfunktionen nicht ohne Zugriff auf einen Herzfrequenzsensor bereitstellen kann, müssen Sie Ihrem Manifest Folgendes hinzufügen:







   

Diese App wird dann nur im Google Play Store für Geräte mit einem Herzfrequenzsensor angezeigt.

Möglicherweise werden auch einige Funktionen von Ihrer Anwendung verwendet, die jedoch nicht erforderlich sind Stellen Sie die Kernfunktionen Ihrer App bereit. In diesem Szenario sollten Sie noch diese Hardware- und Softwarefunktionen deklarieren, sie jedoch als android kennzeichnen: required = "false" stattdessen:







   

Es mag zwar seltsam erscheinen, optionale Hardware- und Softwarefunktionen zu deklarieren, dies hilft jedoch sicherzustellen, dass Ihre App nicht unnötigerweise vor Geräten verborgen wird.

Einige Berechtigungen enthalten implizite Featureanforderungen, z Mit der BLUETOOTH-Berechtigung geht Google Play davon aus, dass für Ihre App die zugrunde liegende android.hardware.bluetooth-Hardware erforderlich ist. Sofern Sie nichts anderes angeben, versteckt Google Play Ihre Anwendung vor allen Geräten, auf denen die erforderliche Bluetooth-Hardware fehlt. Wenn in diesem Szenario Bluetooth nicht als optional aufgeführt wird, entspricht dies genau der Auflistung von Bluetooth als android: required = "true".

Abhängig davon, wie Ihre App android verwendet: required = "false" Hardware oder Software müssen überprüfen, ob bestimmte Systemfunktionen zur Laufzeit verfügbar sind. Sie können diese Laufzeitprüfung durchführen, indem Sie PackageManager.hasSystemFeature () aufrufen und dann das Verhalten Ihrer App in Abhängigkeit von den Ergebnissen ändern. Beispielsweise können Sie Teile Ihrer App, für die der Herzfrequenzsensor erforderlich ist, stillschweigend deaktivieren.

Das Standardverhalten von Android kann sich ändern Daher ist es empfehlenswert, die Art des gewünschten Verhaltens explizit anzugeben. Im Idealfall sollten Sie jede einzelne Hardware- und Softwarefunktion deklarieren, die Ihre Anwendung verwendet, und sie dann entsprechend als android: required = "false" und android: required = "true" kennzeichnen.

Müssen Sie Produktvarianten oder Build-Typen erstellen? So führen Sie mehrere Manifeste zusammen

Jedes Android Studio-Projekt muss mindestens eine Manifest-Datei enthalten. Es ist jedoch auch möglich, dass ein Projekt mehrere Manifeste enthält. Beispielsweise können Sie für jede Produktvariante oder ein anderes Manifest erstellen Build-Typ.

Da Ihre fertige APK nur ein einziges Manifest enthalten kann, führt Gradle während des Build-Vorgangs alle Manifeste zusammen, um die einzige Manifest-Datei zu erstellen, die letztendlich mit Ihrer Anwendung geliefert wird.

Wenn Ihr Projekt mehrere Manifeste enthält Manifests, dann kombiniert das Merger-Tool von Android Studio jede Datei nacheinander auf der Grundlage ihrer Priorität, wobei die Manifest-Datei mit der niedrigsten Priorität mit der nächsthöheren Priorität zusammengeführt wird.

Es gibt drei Arten von Manifests, die Android Studio zusammenführen kann. Dies sind von der höchsten zur niedrigsten Priorität:

  • Die Manifest-Datei für eine Build-Variante.
  • Das Hauptmanifest für Ihr Anwendungsmodul.
  • Die Manifest-Datei aus einer eingeschlossenen Bibliothek.

Wenn ein Element aus Ein Manifest mit niedrigerer Priorität stimmt nicht mit Elementen im Manifest mit höherer Priorität überein, sondern wird dem zusammengeführten Manifest hinzugefügt. Wenn es jedoch ein passendes Element gibt versucht das Merger-Tool, alle Attribute in einem Element zu kombinieren. Wenn zwei oder mehr Manifeste dieselben Attribute mit unterschiedlichen Werten enthalten, tritt ein Zusammenführungskonflikt auf. Zu diesem Zeitpunkt erhalten Sie eine Fehlermeldung und müssen das Merger-Tool anweisen, wie der Konflikt behoben werden kann.

Wenn Ihr Projekt mehrere Manifest-Dateien enthält und Sie sich über die zusammengeführte Ausgabe nicht sicher sind, können Sie eine Vorschau der anzeigen Zusammengeführtes Manifest vor dem Erstellen Ihrer APK:

  • Öffnen Sie eine Ihrer Manifest-Dateien in Android Studio.
  • Wählen Sie die Registerkarte "Zusammengeführtes Manifest" (in der folgenden Abbildung befindet sich der Cursor). Dadurch wird eine Ansicht "Zusammengeführtes Manifest" geöffnet.

In der Ansicht "Zusammengeführtes Manifest" werden die Ergebnisse der Zusammenführung links und Informationen zur zusammengeführten Manifest-Datei rechts angezeigt.

Wenn Sie mit einem der zusammengeführten Manifest-Elemente verwirrt sind, können Sie weitere Informationen zu einem bestimmten Element anzeigen, indem Sie es im linken Bereich auswählen und dann das „Manifest-Protokoll“ im rechten Bereich lesen .

Wenn Zusammenführungskonflikte auftreten, werden sie unter "Zusammenführungsfehler" auf der rechten Seite von Android Studio mit einigen Empfehlungen zur Lösung dieses bestimmten Konflikts mithilfe der Zusammenführung angezeigt Regelmarkierungen.

Zusammenfassung

In diesem Artikel haben wir uns eine der wichtigsten Dateien für Android genauer angesehen. Wir haben die Elemente und Attribute behandelt, die in jeder einzelnen AndroidManifest.xml-Datei vorhanden sind, und einige der zusätzlichen Elemente untersucht, die Sie hinzufügen können, einschließlich Berechtigungen, Absichtsfilter sowie Hardware- und Softwareanforderungen.

Gibt es andere Android-Dateien? Sie möchten, dass wir abdecken? Lass es uns in den Kommentaren unten wissen!

About AndroidWeltEditor

Check Also

How to call a method in Java

In this post, we will learn how to call a method in Java. This is …

Leave a Reply

Your email address will not be published. Required fields are marked *