解决类似 error: unknown element <

2018-07-06  本文已影响976人  imyyq_star

前言

升级到AS 3.1.3后,instant run开启后,Aapt2不能设置为false。

问题

环境:AS 3.1.3,开启instant run,Aapt2=true。
不知道项目合并了哪个库的AndroidManifest文件,导致我的最终的AndroidManifest文件中,出现了

<manifest>
....
<library></library>
....
</manifest>

于是就出现编译报错:

error: unknown element <library> found. 
Message{kind=ERROR, text=error: unknown element <library> found., sources=[E:\Stable\DressingMirror\app\build\intermediates\manifests\full\debug\AndroidManifest.xml:36], original message=, tool name=Optional.of(AAPT)}

Google

网上一查,发现大家都说,把Aapt2设置为false,也就是在gradle.properties中设置:

android.enableAapt2=false

这样一来instant run就用不了了,而且在2018年底,android.enableAapt2这个属性将会被移除。于是得想办法在AndroidManifest中去掉那个不支持的library标签,总不能一个一个库去找吧。

解决

经过一番Google,只要在你的AndroidManifest中加入:

<manifest>
....
<library tools:node="removeAll" />
....
</manifest>

无需设置android.enableAapt2=false。上面的意思可以看Manifest文件的合并规则。

困扰我许久的问题解决。

上一篇 下一篇

猜你喜欢

热点阅读