Gradle buildConfigField:数组和映射的语法?

Fah*_*him 14 java android gradle android-gradle-plugin

关于buildConfigField的android gradle文档说:

void buildConfigField(String type,String name,String value)

向生成的BuildConfig类添加一个新字段.该字段生成为:type name = value;

这意味着每个必须具有有效的Java内容.如果类型是String,则该值应包含引号.

我找不到有关Arrays,Arraylist或HashMap的buildConfigField值语法的任何信息?由于它们被编译成java代码,通常一切都应该是可能的.

有没有人有一些例子或文件?

Anu*_*ngh 26

对于阵列

app.gradle

        buildConfigField "String[]", "URL_ARRAY",
        "{" +
        "\"http:someurl\"," +
        "\"http:someurl\"," +
        "\"http:someurl\"" +
        "}"
Run Code Online (Sandbox Code Playgroud)

对于地图

        buildConfigField "java.util.Map<String, String>", "NAME_MAP", 
                 "new java.util.HashMap<String, " +
                 "String>() {{ put(\"name\", \"John\"); put(\"name1\",  \"John\"); put(\"name2\", " +
                "\"John\"); }}"
Run Code Online (Sandbox Code Playgroud)

访问代码:

HashMap<String, String> name = (HashMap<String, String>) BuildConfig.NAME_MAP;
Run Code Online (Sandbox Code Playgroud)