前言
升級到AS 3.1.3后,instant run開啟后御雕,Aapt2不能設置為false矢沿。
問題
環(huán)境:AS 3.1.3,開啟instant run酸纲,Aapt2=true捣鲸。
不知道項目合并了哪個庫的AndroidManifest文件,導致我的最終的AndroidManifest文件中闽坡,出現(xiàn)了
<manifest>
....
<library></library>
....
</manifest>
于是就出現(xiàn)編譯報錯:
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)}
網(wǎng)上一查栽惶,發(fā)現(xiàn)大家都說愁溜,把Aapt2設置為false,也就是在gradle.properties中設置:
android.enableAapt2=false
這樣一來instant run就用不了了外厂,而且在2018年底冕象,android.enableAapt2這個屬性將會被移除。于是得想辦法在AndroidManifest中去掉那個不支持的library標簽汁蝶,總不能一個一個庫去找吧渐扮。
解決
經(jīng)過一番Google,只要在你的AndroidManifest中加入:
<manifest>
....
<library tools:node="removeAll" />
....
</manifest>
無需設置android.enableAapt2=false掖棉。上面的意思可以看Manifest文件的合并規(guī)則墓律。
困擾我許久的問題解決。