import groovy.json.JsonOutput import groovy.json.JsonSlurper project.android.applicationVariants.all { variant -> def flavorName = variant.flavorName if (flavorName.startsWith("dali")) {//大理环境 if (flavorName.endsWith("Qa")) { buildConfigField 'String', 'URLs', "\"${readFileToJson("dali", "qa").replace("\"", "\\\"")}\"" } else if (flavorName.endsWith("Online")) { buildConfigField 'String', 'URLs', "\"${readFileToJson("dali", "online").replace("\"", "\\\"")}\"" } else if (flavorName.endsWith("Demo")) { buildConfigField 'String', 'URLs', "\"${readFileToJson("dali", "demo").replace("\"", "\\\"")}\"" } } else { // mogo环境 if (flavorName.endsWith("Qa")) { buildConfigField 'String', 'URLs', "\"${readFileToJson("mogo", "qa").replace("\"", "\\\"")}\"" } else if (flavorName.endsWith("Online")) { buildConfigField 'String', 'URLs', "\"${readFileToJson("mogo", "online").replace("\"", "\\\"")}\"" } else if (flavorName.endsWith("Demo")) { buildConfigField 'String', 'URLs', "\"${readFileToJson("mogo", "demo").replace("\"", "\\\"")}\"" } } } Object readFileToJson(project, env) { try { // 加载config.json 文件 File file = new File("${rootDir}/app/urlConfig.json") def jsonSlurper = new JsonSlurper() // 解析json def config = jsonSlurper.parse(file) def jsonOutput = new JsonOutput() config.each { key, value -> // 匹配flavor对应的 json if (project.toLowerCase().contains(key)) { return jsonOutput.toJson(value.get(env)) } } // 保底原则 return jsonOutput.toJson(config.get("mogo").get(env)) } catch (IOException e) { e.printStackTrace() } return null }