簡體   English   中英

使用resValue從build.gradle生成包含%的字符串資源

[英]Generate a string resource containing % from build.gradle with resValue

我的build.gradle中有一個自定義任務,它會生成一些字符串資源:

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

這一切都很好:字符串在generated.xml中正確顯示,可以通過應用程序代碼中的getResources().getString(R.id.my_string)訪問。

當其中一個字符串包含%符號時,它不起作用。 它給出了這個錯誤:

錯誤:(1)以非位置格式指定的多個替換; 你的意思是添加formatted =“false”屬性?

我從Android XML百分比符號中了解到,對於strings.xml中的字符串資源,通常會解決此問題,方法是提供額外的formatted="false"屬性,如下所示:

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

在構建腳本中使用resValue生成字符串時,如何包含formatted="false"屬性?

(我也嘗試使用雙倍%來逃避,但這導致%%出現在最終字符串中。)

我通過在gradle任務中的字符串生成時用雙重轉義的unicode值替換原始%符號來解決它。

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

您可以在xml中使用%

在你的xml中嘗試這種格式\\ %%

<string name="foo">percent symbol 50\%% </string> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM