2015-04-15 6 views
5

ile build.gradle gelen% içeren bir dize kaynak oluşturma created.xml ürünüdür ve uygulama koduna getResources().getString(R.id.my_string) üzerinden erişilebilir.Bazı dize kaynağı oluşturmaktadır benim <strong>build.gradle</strong> özel bir görev var resValue

Dizelerden biri % sembolü içeriyorsa çalışmaz. Aşağıdaki gibi ekstra formatted="false" niteliğini sağlayarak

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

Bir normalde strings.xml bir dize kaynak için, bu geçici bir çözüm olacağını Android XML Percent Symbol anladığımız: Bu hata veriyor

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

Dize, oluşturma komut dosyasında resValue kullanılarak oluşturulduğunda nasıl formatted="false" özniteliğini ekleyebilirim?

(önerildiği gibi ben de çift% ile kaçan denedi, ama bu son dizede görünen %% sonuçlanır.)

cevap

0

ben gradle görev dize nesil anda çift çıkış unicode değeri ile ham % sembolü değiştirerek bunu çözdü.

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

Bu biçimi \ %% denemek xml

yılında% kullanabilirsiniz xml

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