最近在做项目工程打包,需要用到这个,mark一下。
重要:这是写在build.gradle中的。
1.先引入一下需要用到的类
import groovy.xml.Namespace
import groovy.xml.XmlUtil
2.在android节点下加入
android.applicationVariants.all
3.删除权限
简单举个例子,删除 READ_PHONE_STATE
android.applicationVariants.all { variant ->
String variantName = variant.name.capitalize()
def processManifestTask = project.tasks.getByName("process${variantName}Manifest")
processManifestTask.doLast { pmt ->
def androidManifestDir = pmt.manifestOutputDirectory.toString()+"/AndroidManifest.xml"
println(androidManifestDir)
def ans = new Namespace("http://schemas.android.com/apk/res/android", "android")
def manifestPath = new File(androidManifestDir)
def manifestStr = file(manifestPath).getText()
def xml = new XmlParser().parseText(manifestStr)
println("***********")
def pers = xml['uses-permission']
for(int j=0;j<pers.size();j++){
if(pers.get(j).attributes().get(ans.name) == "android.permission.READ_PHONE_STATE"){
println(j)
xml.remove(pers.get(j))
}
}
println(pers)
println("***********")
def serialize = XmlUtil.serialize(xml)
file(manifestPath).write(serialize)
}
}
还有一些其他修改