根据情况替换 Manifest.xml 中的值

android 中有很多个渠道,每个渠道都有 debugrelease 版本, 如果Manifest.xml 中每个版本有不同的值

一般的可以用 manifestPlaceholders = [APP_KEY : '对应的值'] 来替换,在 debugrelease 的时候也可以,但是多渠道的时候可能就会有些问题了

解决方式

  • 1、简单

两个渠道

    flavorDimensions 'defaultDimension'    productFlavors {        alibaba { }        tencent { }    }

每个渠道的版本的不同的值

ext {    alibabaDebug = 'alibabaDebug'    alibabaRelease = 'alibabaRelease'    tencentDebug = 'tencentDebug'    tencentRelease = 'tencentRelease'}

替换值

afterEvaluate {    project.android.applicationVariants.all { variant ->        // 最简单的方法        variant.mergedFlavor.manifestPlaceholders = [APP_KEY: project."${variant.name}"]    }}
  • 2、自定义任务,和上面的其实差不多

    两个渠道

        flavorDimensions 'defaultDimension'    productFlavors {        alibaba { }        tencent { }    }

    每个渠道的版本的不同的值

    ext {    alibabaDebug = 'alibabaDebug'    alibabaRelease = 'alibabaRelease'    tencentDebug = 'tencentDebug'    tencentRelease = 'tencentRelease'}

    替换值

    afterEvaluate {    project.android.applicationVariants.all { variant ->        // 自定义任务        tasks.create("${variant.name}ManifestPlaceHolder", ManifestPlaceHolder) {            current = variant        }        variant.outputs.first().processManifest.dependsOn "${variant.name}ManifestPlaceHolder"            }}class ManifestPlaceHolder extends DefaultTask {    @Input    def current    @TaskAction    def changeManifestPlaceHolder() {        current.mergedFlavor.manifestPlaceholders = [APP_KEY: project."${current.name}"]    }}

更多相关文章

  1. Could not find SDK_Root\tools\adb.exe!
  2. Flex AIR应用拍照功能(Android和IOS版本)
  3. Android学习——AndroidX
  4. Android(安卓)Studio系列教程六--Gradle多渠道打包
  5. android两个子线程间通信
  6. zdz工具箱v1.5 android版本发布了,集成各种个人生活中常用的工具
  7. Android(安卓)项目多版本管理
  8. Android中ADT插件的安装
  9. 使用AndroidStudio生成打有系统签名的apk

随机推荐

  1. 【2017年学习输出内容记录】Android系统
  2. Flutter Android(安卓)端热修复(热更新)实
  3. Android(安卓)应用程序窗体显示状态操作(r
  4. Android(安卓)Button及TextView动态变换
  5. Android(安卓)SQLite最简单demo实现(增删
  6. Android用Application设置全局变量以及使
  7. Android泡泡聊天界面的实现
  8. Android中的Looper类&Handler &Message
  9. 问题虽小,但是遇到会蛋疼!android蛋疼问题
  10. Android中 AsyncTask的使用