2017-02-09 4 views
4

アンドロイドのGradleドキュメントはbuildConfigFieldについてこう述べています。Gradle buildConfigField:配列とマップの構文ですか?

無効buildConfigField(文字列型は、文字列名、文字列値)

が生成BuildConfigクラスに新しいフィールドを追加します。フィールドは次のように生成されます。type name = value;

これは、それぞれに有効なJavaコンテンツが必要であることを意味します。型がStringの場合、値には引用符を含める必要があります。

配列、ArraylistまたはHashMapのbuildConfigField値の構文についての情報はありませんか?それらはJavaコードにコンパイルされているので、通常はすべて可能でなければなりません。

例やドキュメントはありますか?地図

コードで
 buildConfigField "java.util.Map<String, String>", "NAME_MAP", 
       "new java.util.HashMap<String, " + 
       "String>() {{ put(\"name\", \"John\"); put(\"name1\", \"John\"); put(\"name2\", " + 
       "\"John\"); }}" 

アクセスのための配列

app.gradle

 buildConfigField "String[]", "URL_ARRAY", 
     "{" + 
     "\"http:someurl\"," + 
     "\"http:someurl\"," + 
     "\"http:someurl\"" + 
     "}" 

については

+0

それは、Groovyのコードです。構文を知りたければ、そこを見てください。 –

+1

これはグルーヴィーな構文ではなく、多かれ少なかれ利用可能なタイプに関するものです。しかし、私はその間に問題を解決しました... – Fahim

答えて

7

:私は今、それを得た

HashMap<String, String> name = (HashMap<String, String>) BuildConfig.NAME_MAP; 
0

[OK]をクリックします。パラメータはJavaで1:1に変換されます。つまり、実際には、gradle内でjavaをコーディングして適切にエスケープする必要があります。 HashSetのために

buildConfigField "java.util.Set<String>", "MY_SET", "new java.util.HashSet<String>() {{ add(\"a\"); }};" 
関連する問題