当前位置: 代码迷 >> 综合 >> Android笔记(十六):Gradle脚本动态修改AndroidManifest.xml的MainActivity
  详细解决方案

Android笔记(十六):Gradle脚本动态修改AndroidManifest.xml的MainActivity

热度:23   发布时间:2024-02-26 19:27:25.0

在主模块build.gradle添加如下代码即可修改AndroidManifest.xml的MainActivity

原理:利用Groovy XmlSlurper来改写xml文件

import groovy.xml.XmlUtilthis.afterEvaluate {def manifestFile = "${projectDir}/src/main/AndroidManifest.xmldef xml = file(manifestFile)def manifest = new XmlSlurper().parse(manifestFile)def application = manifest.applicationapplication.activity.each {def isFind = falseit.children().each {if(it.name() == "intent-filter"){it.children().each{if(it.name()=="action" &&it.@"android:name"=="android.intent.action.MAIN"){isFind = truereturn true}}}if(isFind){return  true}}if (isFind){it.@"android:name" = "New Activity"return true}}xml.withWriter {out->XmlUtil.serialize(manifest, out)}
}

注:

${projectDir} :build.gradle的路径

isFind:标志是否找到MainActivity所在的activity节点

XmlUtil.serialize:保存修改后的xml文件

  相关解决方案