在网上找了好久没有一个完整的学习文档,自己总结下,方便后面使用,话不多说直接上代码
首先获取路径
def path = getProjectDir().getPath()+"/src/"+variant.productFlavors[0].name+"/res/values/strings.xml"
System.out.println("path~~~path=" + path)
try {
File file = new File(path)
file.find { String line ->
// System.out.println("line~~~name=" + line.toString()+"-${variant.buildType.name}" +
// ""+",,"+line.toString().contains("<string name="))
String a=line.toString( ).split('<string name="')[0].trim();
// System.out.println("path~~~path=" + path+",,,"+projectName+"----"+line.toString( ).split('<string name="')[0]+";;;;;"+
// (!(("<!--").equals(a))))
if (line.toString().contains('<string name="')&&(!(("<!--").equals(a))) ) {//去除注释的String
//对数据进行分割,截取自己需要的
String name1=line.toString( ).split('<string name="')[1]
// System.out.println("name1===" +name1)
String name2=name1.replaceFirst('">',"=")
// System.out.println("name2===" +name2)
String name3 = name2.toString( ).split('</string>')[0]
// System.out.println("name3===" +name3)
if (name3.contains("=")&&name3.contains("app_name")){
appName=name3.split('=')[1]
// System.out.println("appName===" +appName)
}
}
} catch (Exception e) {
System.out.println("无法读取名称。。。" )
}
def tempName = variant.productFlavors[0].manifestPlaceholders.name
def apkName = tempName + "_" + variant.mergedFlavor.versionName ++appName.trim()+ ".apk"
下面是获取app方式:
project.name ==app
variant.productFlavors[0].name
variant.name ==appRelease
//rootProject.ext.isAddRubbishCode
读取gradle.properties
&{"数据"}
完成