Android Studio 3默认启动了AAPT2,AAPT2增强了对AndroidManifest.xml的检查。
先前版本的AAPT会忽略AndroidManifest.xml错误的元素内嵌,或者只是给出警告,并不会报错。
示例
<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>
在AAPT2对于放错位置的标签会抛出错误,上面的例子会抛出类似错误:
AndroidManifest.xml:15: error: unknown element <action> found.
解决方法就是根据manifest的结构定位错误的标签或放错位置的标签。
Manifest结构参考:https://developer.android.com/guide/topics/manifest/manifest-intro.html#filestruct