文章目录

  • 一、ProductFlavor#manifestPlaceholders 清单文件占位符配置

Android Plugin DSL Reference 参考文档 :

  • 文档主页 : https://google.github.io/android-gradle-dsl/2.3/

  • AppExtension ( build.gradle#android 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.AppExtension.html

  • build.gradle#android 模块配置文档 : android-gradle-dsl/2.3/com.android.build.gradle.AppExtension.html

  • ProductFlavor 文档 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.ProductFlavor.html

  • ProductFlavor#externalNativeBuild 配置 : com.android.build.gradle.internal.dsl.ProductFlavor:externalNativeBuild

  • ExternalNativeBuildOptions 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.ExternalNativeBuildOptions.html

  • NdkBuildOptions 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.NdkBuildOptions.html

  • CmakeOptions 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.CmakeOptions.html

  • JackOptions 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.JackOptions.html

  • AnnotationProcessorOptions ( 注解处理器配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AnnotationProcessorOptions.html

  • NDK 参考文档 : Add C and C++ Code to Your Project.

一、ProductFlavor#manifestPlaceholders 清单文件占位符配置


ProductFlavor 参考文档 : com.android.build.gradle.internal.dsl.ProductFlavor.html

ProductFlavor#manifestPlaceholders 配置 , 用于配置 manifest 的占位符 , 该配置项是 Map<String, Object> 类型的 ;


在 build.gradle 的 ProductFlavor defaultConfig 配置项中 , 设置清单文件占位符属性 , 为其设置一个 Map<String, Object> 类型的属性 ;

代码示例 :

android {defaultConfig {manifestPlaceholders = [name: 'Tom']}

完整代码 :

plugins {id 'com.android.application'
}android {compileSdkVersion 31buildToolsVersion "30.0.3"defaultConfig {applicationId "com.example.ad_id_test"minSdkVersion 18targetSdkVersion 31versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"manifestPlaceholders = [name: 'Tom']}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}}dependencies {implementation 'androidx.appcompat:appcompat:1.4.1'implementation 'com.google.android.material:material:1.5.0'implementation 'androidx.constraintlayout:constraintlayout:2.1.3'testImplementation 'junit:junit:4.+'androidTestImplementation 'androidx.test.ext:junit:1.1.3'androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

清单文件配置 : 在下面的 meta-data 标签中 , 使用了 ${name} 引用了 build.gradle 中定义的 manifestPlaceholders = [name: 'Tom'] , 在合并清单文件时 , 会自动使用 Tom 替换上述 ${name} 引用 ;

<meta-data android:name="student" android:value="${name}" />

完整 AndroidManifest.xml 清单文件配置 :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.ad_id_test"><uses-permission android:name="com.google.android.gms.permission.AD_ID"/><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/Theme.AD_ID_Test"><meta-data android:name="student" android:value="${name}" /><activity android:name=".MainActivity"android:exported="false"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

将 AndroidManifest.xml 清单文件 切换到 Merged Manifest 模式 , 可以看到合并后的 清单文件 , 其中 <meta-data> 标签 , 由

<meta-data android:name="student" android:value="${name}" />

变成了

<meta-data android:name="student" android:value="Tom" />

样式 , ${name}Tom 替换了 ;

【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor#manifestPlaceholders 清单文件占位符配置 )相关推荐

  1. 【Android Gradle 插件】主工程与依赖库变体配置 (LibraryExtension#libraryVariants|AppExtension#applicationVariants)

    文章目录 一.LibraryExtension#libraryVariants 配置 二.AppExtension#applicationVariants 配置 Android Plugin DSL ...

  2. 【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor#buildConfigField 方法 | 单独编译生成 BuildConfig 类的任务 )

    文章目录 一.ProductFlavor#buildConfigField 方法 二.单独执行 Gradle 编译 BuildConfig 的任务 Android Plugin DSL Referen ...

  3. 【Android Gradle 插件】AaptOptions 配置 ⑥ ( Overlay 重叠包机制 | AaptOptions#additionalParameters 附加参数配置 )

    文章目录 一.Overlay 重叠包机制 二.AaptOptions#additionalParameters 附加 -S 参数配置实现Overlay 重叠包机制 Android Plugin DSL ...

  4. 【Android Gradle 插件】DexOptions 配置 ③ ( additionalParameters 属性配置 | 多 dex 参数配置 | --multi-dex 参数 )

    文章目录 一.dx --multi-dex 参数 1.--multi-dex 参数简介 2.--multi-dex 参数配置示例 二.BuildType#multiDexEnabled 属性配置多 d ...

  5. 【Android Gradle 插件】DexOptions 配置 ⑤ ( additionalParameters 属性配置 | --minimal-main-dex 参数最小化主 dex 字节码 )

    文章目录 一.dx --minimal-main-dex 参数 1.参数简介 2.配置 main dex 保留文件 3.配置 android#buildTypes 4.配置 android#dexOp ...

  6. 【Android Gradle 插件】工程根目录下 build.gradle 配置文件 ( 远程仓库配置 | 依赖配置 | 所有子模块配置 | task clean 任务 )

    文章目录 一.工程根目录下 build.gradle 配置文件 1.基本作用 2.远程仓库配置 3.依赖配置 3.所有子模块配置 4.task clean 任务 Android Plugin DSL ...

  7. 当前版本的Android Gradle插件不支持按需配置

    本文翻译自:Configuration on demand is not supported by the current version of the Android Gradle plugin A ...

  8. 【Android Gradle 插件】自定义 Gradle 插件优化图片 ① ( Android 中的 WebP 图片格式使用 | WebP 格式转换 | WebP 参考文档 )

    文章目录 一.Android 中的 WebP 图片格式使用 二.WebP 格式转换 三.WebP 参考文档 Android Plugin DSL Reference 参考文档 : Android St ...

  9. 小记Android Gradle插件 Iven 记于 20190522 药厂

    2016.04年 Android Gradle插件2.x 通过支持字节码注入,将代码和资源更新推送到模拟器或物理设备上正在运行的应用程序,启用Instant Run. 添加了对增量构建的支持,即使应用 ...

最新文章

  1. htmlparser解析网页内容代码
  2. Javascript的怪癖
  3. 【探究】信号槽到底能不能有返回值?
  4. php 内置mail 包,PHP使用pear自带的mail类库发邮件的方法
  5. SourceInsight工程文件与源文件相对路径
  6. 1.根据MAC地址抓包
  7. Atitit 圣爱提拉克斯工作最紧张的时候 11月,圣爱提拉克斯进入了一年中工作最紧张的时候。 过去,他每个月都要撰写不少文章、与不同的人愉快地交谈,教育他们沿着圣爱提拉克斯创造的世界上最伟大的圣
  8. c++-密码生成小程序
  9. linux文件系统F2FS,文件系统F2FS也将造福SSD
  10. (二十)STM32——电容触摸按键?建议改名为卫生纸按键
  11. 酷!有人把火星车都造出来了,教程全面开源
  12. pxe服务器 安装系统,通过PXE网络安装windows系统
  13. 【知识兔】六个Excel生成序号技巧,超级大技巧
  14. vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in nextTick: “TypeError: Cannot read properties of und
  15. Springboot 使用restTemplate 进行跨域请求 response reqeust中首字母大写的问题
  16. 《给你一个团队你怎么带》笔记(绝多数为个人经验,仅供参考)
  17. 视频知识点(17)- flv.js 实现播放本地视频文件的技巧
  18. android studio manifest merger failed,Android Studio报错Manifest merger failed with multiple errors...
  19. Vmware 虚拟机 网络设置
  20. 小球碰壁反弹加分_canvas实现碰壁反弹(小球)

热门文章

  1. 端到端的超媒体REST API设计
  2. DOM4j读取XML文件(SAXReader)
  3. Matlab中plot基本用法
  4. CentOS 5.3 下快速安装配置 PPTP ××× 服务器
  5. Java8 Time
  6. 网络号、主机号、子网号、子网掩码、子网划分
  7. Nginx的配置文件nginx.conf详解
  8. 数据库中间件支持数据库集群方案
  9. YII 测试环境搭建
  10. css考核点整理(十一)-响应式开发经验,响应式页面的三种核心技术是什么