AKTUALISIEREN
Eine neue Version von Gradle und Android-Gradle-Plugin ist verfügbar, die diese Probleme behebt.
build.gradle (oberste Ebene)
buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
}
gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-all.zip
VORHERIGE ANTWORT
Wenn Sie AAPT2 deaktivieren, verbergen Sie nur das eigentliche Problem.
Bitte beachten Sie, dass dies AAPT1möglicherweise in Zukunft entfernt wird, weshalb Sie zur Verwendung gezwungen sind AAPT2. Tatsächlich ist der Migrationsleitfaden nicht schwer zu befolgen, da Sie nicht sehen, dass so viele Änderungen gleichzeitig vorgenommen werden. Dies ist zukunftssicher.
Elementhierarchien im Android-Manifest
In früheren Versionen von AAPT werden Elemente, die in falschen Knoten im Android-Manifest verschachtelt sind, entweder ignoriert oder führen zu einer Warnung. Betrachten Sie beispielsweise das folgende Beispiel:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myname.myapplication">
<application
...
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<action android:name="android.intent.action.CUSTOM" />
</activity>
</application>
</manifest>
Daher müssen Sie zuerst überprüfen, ob Sie wirklich der richtigen Manifeststruktur folgen, wie unten gezeigt.
Manifest Dateistruktur
Das folgende Codefragment zeigt die allgemeine Struktur der Manifestdatei und jedes darin enthaltenen Element. Jedes Element wird zusammen mit all seinen Attributen vollständig in einer separaten Datei dokumentiert.
<manifest>
<uses-permission />
<permission />
<permission-tree />
<permission-group />
<instrumentation />
<uses-sdk />
<uses-configuration />
<uses-feature />
<supports-screens />
<compatible-screens />
<supports-gl-texture />
<application>
<activity>
<intent-filter>
<action />
<category />
<data />
</intent-filter>
<meta-data />
</activity>
<activity-alias>
<intent-filter> . . . </intent-filter>
<meta-data />
</activity-alias>
<service>
<intent-filter> . . . </intent-filter>
<meta-data/>
</service>
<receiver>
<intent-filter> . . . </intent-filter>
<meta-data />
</receiver>
<provider>
<grant-uri-permission />
<meta-data />
<path-permission />
</provider>
<uses-library />
</application>
</manifest>