ОБНОВИТЬ
Доступна новая версия Gradle и Android-gradle-plugin, которая устраняет эти проблемы.
build.gradle (верхний уровень)
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
ПРЕДЫДУЩИЙ ОТВЕТ
Если вы отключаете AAPT2, вы просто скрываете реальную проблему.
Пожалуйста, имейте AAPT1
в виду, что это может быть удалено в будущем, поэтому вы вынуждены использовать AAPT2
. На самом деле, руководству по миграции нетрудно следовать, так как вы не видите большого количества изменений в то же время, и это будущее.
Иерархии элементов в манифесте Android
В предыдущих версиях AAPT элементы, вложенные в неправильные узлы в манифесте Android, либо игнорируются, либо выдают предупреждение. Например, рассмотрим следующий пример:
<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>
Поэтому сначала вы должны проверить, действительно ли вы следуете правильной структуре манифеста, как показано ниже.
Файловая структура манифеста
Фрагмент кода ниже показывает общую структуру файла манифеста и каждого элемента, который он может содержать. Каждый элемент вместе со всеми его атрибутами полностью документирован в отдельном файле.
<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>