【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor#manifestPlaceholders 清单文件占位符配置 )
文章目录
- 一、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 清单文件占位符配置 )相关推荐
- 【Android Gradle 插件】主工程与依赖库变体配置 (LibraryExtension#libraryVariants|AppExtension#applicationVariants)
文章目录 一.LibraryExtension#libraryVariants 配置 二.AppExtension#applicationVariants 配置 Android Plugin DSL ...
- 【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor#buildConfigField 方法 | 单独编译生成 BuildConfig 类的任务 )
文章目录 一.ProductFlavor#buildConfigField 方法 二.单独执行 Gradle 编译 BuildConfig 的任务 Android Plugin DSL Referen ...
- 【Android Gradle 插件】AaptOptions 配置 ⑥ ( Overlay 重叠包机制 | AaptOptions#additionalParameters 附加参数配置 )
文章目录 一.Overlay 重叠包机制 二.AaptOptions#additionalParameters 附加 -S 参数配置实现Overlay 重叠包机制 Android Plugin DSL ...
- 【Android Gradle 插件】DexOptions 配置 ③ ( additionalParameters 属性配置 | 多 dex 参数配置 | --multi-dex 参数 )
文章目录 一.dx --multi-dex 参数 1.--multi-dex 参数简介 2.--multi-dex 参数配置示例 二.BuildType#multiDexEnabled 属性配置多 d ...
- 【Android Gradle 插件】DexOptions 配置 ⑤ ( additionalParameters 属性配置 | --minimal-main-dex 参数最小化主 dex 字节码 )
文章目录 一.dx --minimal-main-dex 参数 1.参数简介 2.配置 main dex 保留文件 3.配置 android#buildTypes 4.配置 android#dexOp ...
- 【Android Gradle 插件】工程根目录下 build.gradle 配置文件 ( 远程仓库配置 | 依赖配置 | 所有子模块配置 | task clean 任务 )
文章目录 一.工程根目录下 build.gradle 配置文件 1.基本作用 2.远程仓库配置 3.依赖配置 3.所有子模块配置 4.task clean 任务 Android Plugin DSL ...
- 当前版本的Android Gradle插件不支持按需配置
本文翻译自:Configuration on demand is not supported by the current version of the Android Gradle plugin A ...
- 【Android Gradle 插件】自定义 Gradle 插件优化图片 ① ( Android 中的 WebP 图片格式使用 | WebP 格式转换 | WebP 参考文档 )
文章目录 一.Android 中的 WebP 图片格式使用 二.WebP 格式转换 三.WebP 参考文档 Android Plugin DSL Reference 参考文档 : Android St ...
- 小记Android Gradle插件 Iven 记于 20190522 药厂
2016.04年 Android Gradle插件2.x 通过支持字节码注入,将代码和资源更新推送到模拟器或物理设备上正在运行的应用程序,启用Instant Run. 添加了对增量构建的支持,即使应用 ...
最新文章
- htmlparser解析网页内容代码
- Javascript的怪癖
- 【探究】信号槽到底能不能有返回值?
- php 内置mail 包,PHP使用pear自带的mail类库发邮件的方法
- SourceInsight工程文件与源文件相对路径
- 1.根据MAC地址抓包
- Atitit 圣爱提拉克斯工作最紧张的时候 11月,圣爱提拉克斯进入了一年中工作最紧张的时候。 过去,他每个月都要撰写不少文章、与不同的人愉快地交谈,教育他们沿着圣爱提拉克斯创造的世界上最伟大的圣
- c++-密码生成小程序
- linux文件系统F2FS,文件系统F2FS也将造福SSD
- (二十)STM32——电容触摸按键?建议改名为卫生纸按键
- 酷!有人把火星车都造出来了,教程全面开源
- pxe服务器 安装系统,通过PXE网络安装windows系统
- 【知识兔】六个Excel生成序号技巧,超级大技巧
- vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in nextTick: “TypeError: Cannot read properties of und
- Springboot 使用restTemplate 进行跨域请求 response reqeust中首字母大写的问题
- 《给你一个团队你怎么带》笔记(绝多数为个人经验,仅供参考)
- 视频知识点(17)- flv.js 实现播放本地视频文件的技巧
- android studio manifest merger failed,Android Studio报错Manifest merger failed with multiple errors...
- Vmware 虚拟机 网络设置
- 小球碰壁反弹加分_canvas实现碰壁反弹(小球)