代码之家  ›  专栏  ›  技术社区  ›  jayatubi

Aapt未知命令“--输出文本符号”

  •  1
  • jayatubi  · 技术社区  · 6 年前

    我刚刚将Android环境升级到:

    • macOS 10.13.5版
    • 安道尔工作室3.1.4
    • 渐变4.6
    • 渐变插件'com.android.tools工具.建造:格拉德尔:3.1.4'
    • 安卓SDK 28
    • 构建工具28.0.2

    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 从哪里来。看起来像是 --输出文本符号 是程序的参数 aapt 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..
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   jayatubi    6 年前

    在我的构建.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
    

    然后我尝试使用一个字符长的空格字符串:

    aaptOptions {
        noCompress " "  // <- one char length space string
    }
    

    我想现在的论点是:

    aapt -0 ' ' --output-text-symbols
             ^
      the space comes back
    

    然后它为我解决了问题。