gpt4 book ai didi

android - 使用 resValue 从 build.gradle 生成包含 % 的字符串资源

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:01 25 4
gpt4 key购买 nike

我的 build.gradle 中有一个自定义任务,它生成一些字符串资源:

android.defaultConfig.resValue "string", "my_string", "Some Value"

一切正常:字符串在 generated.xml 中正确显示,并且可以通过应用程序代码中的 getResources().getString(R.id.my_string) 访问.

当其中一个字符串包含 % 符号时,它不起作用。它给出了这个错误:

Error:(1) Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?

我从Android XML Percent Symbol了解到对于 strings.xml 中的字符串资源,通常可以解决此问题,方法是提供额外的 formatted="false" 属性,如下所示:

<string formatted="false">My string with a % symbol</string>

当在构建脚本中使用 resValue 生成字符串时,如何包含 formatted="false" 属性?

(我也尝试过按照建议使用 double-% 进行转义,但这会导致 %% 出现在最终字符串中。)

最佳答案

我通过在 gradle 任务中的字符串生成时将原始 % 符号替换为双重转义的 unicode 值来解决这个问题。

android.defaultConfig.resValue "string", "my_string", \
"String with a % symbol".replaceAll("%","\\\\u0025")

关于android - 使用 resValue 从 build.gradle 生成包含 % 的字符串资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29655543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com