我刚刚将我的Android环境升级为:
但是,当我打算构建我的项目时,它总是在任务processXXXDebugResources
失败并出现这样的错误:
AAPT err(Facade for 111853366) : No Delegate set : lost message:error: unknown command '--output-text-symbols'.
AAPT err(Facade for 111853366) : No Delegate set : lost message:Error
Failed to execute aapt
我不知道--output-text-symbols
来自哪里。看起来--output-text-symbols
是程序aapt
的参数,但最新的gradle插件使用另一个新的aapt2
。
android.enableAapt2=false
可能会使此问题消失,但警告会告知此选项将被弃用。
The option 'android.enableAapt2' is deprecated and should not be used anymore.
Use 'android.enableAapt2=true' to remove this warning.
It will be removed at the end of 2018..
我找到了解决方案。
在我的build.gradle中有一个aaptOptions
,其长度为零字符串参数:
aaptOptions {
noCompress "" // <- zero length string
}
它曾用于2.x gradle插件,但在最新的3.x版本上失败了。看起来新插件为aapt
命令提供了不正确的参数。
我的怀疑:
在旧版本中,参数可能是:
aapt -0 '' --output-text-symbols
^
this is the zero-length string from aaptOptions in bulid.gradle
但在最新版本中,这变为:
aapt -0 --output-text-symbols
^
something is missing
然后我尝试使用一个char长度的空格字符串:
aaptOptions {
noCompress " " // <- one char length space string
}
我想这些争论现在变成了:
aapt -0 ' ' --output-text-symbols
^
the space comes back
然后它解决了我的问题。