AKTUALIZACJA
Dostępna jest nowa wersja wtyczki Gradle i Android-gradle-plugin, która rozwiązuje te problemy.
build.gradle (najwyższy poziom)
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
POPRZEDNIA ODPOWIEDŹ
Jeśli wyłączysz AAPT2, po prostu ukrywasz prawdziwy problem.
Pamiętaj, AAPT1
że w przyszłości może zostać usunięty, dlatego musisz z niego korzystać AAPT2
. Właściwie przewodnik migracji nie jest trudny do naśladowania, ponieważ nie widzisz tak wielu zmian w tym samym czasie, w ten sposób jest to przyszłościowe.
Hierarchie elementów w manifeście systemu Android
W poprzednich wersjach AAPT elementy zagnieżdżone w nieprawidłowych węzłach w manifeście systemu Android są ignorowane lub powodują ostrzeżenie. Na przykład rozważ następujący przykład:
<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>
Dlatego musisz najpierw sprawdzić, czy naprawdę postępujesz zgodnie z poprawną strukturą Manifestu, jak pokazano poniżej.
Struktura pliku manifestu
Poniższy fragment kodu przedstawia ogólną strukturę pliku manifestu i każdego elementu, który może zawierać. Każdy element, wraz ze wszystkimi jego atrybutami, jest w pełni udokumentowany w osobnym pliku.
<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>