Android项目中gradle文件里面的productFlavors一些常用配置

Android flavor 的build.gradle.kts的新写法 Android Gradle 插件 4.0 支持在 Gradle 构建配置中使用 Kotlin 脚本 (KTS),用于替代 Groovy(过去在 Gradle 配置文件中使用的编程语言)。将来,KTS 会比 Groovy 更适合用于编写 Gradle 脚本,因为采用 Kotlin 编写的代码可读性更高,并且 Kotlin 提供了更好的编译时检查和 IDE 支持。这里记录下,在修改 flavor时候,遇到的几个坑。 阅读详情

看看发生了什么:

配置选择

当然,相应的打包时的项目选择也多了起来:

打包选择

2.添加一些项目常用配置 现在有那么多环境的包,有啥用?在每个不同环境的包里面配置自己需要的东西啊,比如咱们刚才说的,每个环境的API地址不一样,怎么;再比如说,我开发环境需要支持自动升级,可我正式环境不想支持了,需要一个常量做一个标示,怎么办?盘他就得了!


flavorDimensions “mode”

productFlavors{

dev{

dimension “mode”

buildConfigField(“String”, “HTTP_BASE”, ‘“https://www.xxx.com/dev/”’)

buildConfigField(“boolean”, “UPDATE”, “true”)//那里需要用了,直接BuildConfig.UPDATE就取出来了,就这么简单

}

tes{

dimension “mode”

buildConfigField(“String”, “HTTP_BASE”, ‘“https://www.xxx.com/tes/”’)

buildConfigField(“boolean”, “UPDATE”, “false”)

}

pro{

dimension “mode”

buildConfigField(“String”, “HTTP_BASE”, ‘“https://www.xxx.com/pro/”’)

buildConfigField(“boolean”, “UPDATE”, “false”)

}

}

把格式说一下 buildConfigField(“常量类型”,“常量名称”,“常量值”)

这样会在项目构建的是后,在项目的Build.config中生成项目的配置文件,类似这样:

你选择的是开发环境,那么这里面的配置就是dev环境下的地址,同理tes,pro环境一样.

3.可以用来配置清单文件里面的值


这个最常用的就是在清单文件里面需要配置app_key,app_id的时候了,很多的三方SDK是需要配置这个东西的,比如某盟,某语音等等一大堆,这个时候,开发是用的key和id肯定不能正是环境也用,或者给不同的客户打不同的包,用的也不能一样,这是后,需要进行一些配置: 在清单文件(AndroidManifest)里面,application节点下这样配置:

<meta-data

android:name=“app_id”

android:value="${app_id_value}" />//占位符

<meta-data

android:name=“app_key”

android:value="${app_key_value}" />

在刚刚的productFlavors下面这样配置:

productFlavors{

dev{

dimension “mode”

buildConfigField(“String”, “HTTP_BASE”, ‘“https://www.xxx.com/dev/”’)

manifestPlaceholders = [app_id_value : “123456”

,app_key_value : “654321”]

}

tes{

dimension “mode”

buildConfigField(“String”, “HTTP_BASE”, ‘“https://www.xxx.com/tes/”’)

manifestPlaceholders = [app_id_value : “111111”

,app_key_value : “222222”] //替换两个以上的用逗号隔开

}

pro{

dimension “mode”

buildConfigField(“String”, “HTTP_BASE”, ‘“https://www.xxx.com/pro/”’)

manifestPlaceholders = [app_id_value : “223344”

,app_key_value : “556677”]

}

}

除了设置这些之外,还可以给不同环境配置不同的包名,版本号,版本名称,并且在选择不同环境运行或者打包的时候,显示的包名是不一样的,这个我验证过了,上个全的:

flavorDimensions “mode”

productFlavors{

dev{

dimension “mode”

applicationId “com.liucl.dev.app”

versionName “1.0.0”

versionCode 10

buildConfigField(“String”, “HTTP_BASE”, ‘“https://www.xxx.com/dev/”’)

buildConfigField(“boolean”, “UPDATE”, “true”)

manifestPlaceholders = [app_id_value : “123456”

,app_key_value : “654321”]

}

tes{

dimension “mode”

applicationId “com.liucl.tes.app”

versionName “2.0.0”

versionCode 20

buildConfigField(“String”, “HTTP_BASE”, ‘“https://www.xxx.com/tes/”’)

buildConfigField(“boolean”, “UPDATE”, “true”)

manifestPlaceholders = [app_id_value : “111111”

,app_key_value : “222222”]

}

pro{

dimension “mode”

versionName “3.0.0”

versionCode 30

applicationId “com.liucl.pro.app”

buildConfigField(“String”, “HTTP_BASE”, ‘“https://www.xxx.com/pro/”’)

buildConfigField(“boolean”, “UPDATE”, “false”)

manifestPlaceholders = [app_id_value : “223344”

,app_key_value : “556677”]

}

}

[]

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

( )4.根据不同的productFlavors,引入不同的依赖包:


举个例子:我dev环境想用刘氏财团的 发财_aar 包 ; tes环境用 长寿_aar 包 ; 正式环境用 喜庆_aar包,改咋办? 1.新加节点configurations, 2.在dependencies中添加以下配置

configurations {

dev

tes

pro

productFlavors Android产品风味自定义、多渠道打包配置、应用瘦身 阅读详情

相关推荐

android gradle项目中productFlavors区分开发环境配置服务器地址

最近在开发过程中遇到一些感觉有点繁琐的操作,所以想简化一下操作 现在像一般的开发都会测试环境,预发环境,线上环境等等之类的后台服务器地址不一样,这样在每次切换环境的时候 都需要去修改地址,这样感觉非常麻烦,而且有时候打包的时候还要去确认当前代码在什么环境,我是一个比较懒的人,不想让自己的操作太过麻烦,也不想提心吊胆去担心环境配置的对不对,所以就去看一些build.gradle的一些用法,可以使用g...

lplj717的博客 1664

Android Gradle中的productFlavors

前言 前段时间在研究

nihaomabmt的专栏 1万+

【UE5_蓝图】实时音频采集与动态WAV文件保存实战指南

本文详细介绍了在UE5中使用蓝图实现实时音频采集与动态WAV文件保存的完整流程。从插件配置、录音框架搭建到动态文件名生成和音频参数优化,提供了实用技巧和常见问题解决方案,特别适合需要快速实现音频采集功能的开发者。

weixin_29009669的博客 409

Kotlin build.gradle.kts配置productFlavors

Kotlin build.gradle.kts配置productFlavors

HXX15501057502的博客 1790

从原理到调试:手把手教你用Matlab解码互补格雷码与相移码(附数据与常见错误排查)

本文详细介绍了如何使用Matlab解码互补格雷码与相移码,涵盖从原理到调试的全过程。通过实际案例和代码示例,帮助读者掌握结构光三维重建中的相位解包裹技术,并提供了常见错误排查与优化建议,提升解码效率与准确性。

weixin_29090917的博客 220

基于计算机视觉的Windows自动化工具openclaw-win:从原理到实战

计算机视觉与自动化技术正深刻改变人机交互方式,其核心在于让机器具备“感知-决策-执行”的能力。通过图像采集与处理算法,程序可以识别屏幕上的特定元素;结合模拟输入技术,便能自动执行点击、拖拽等操作,形成完整的自动化闭环。这一技术栈在软件测试、数据采集、重复性办公任务等领域具有重要价值,能够显著提升工作效率。开源项目openclaw-win正是这一理念的工程实践,它整合了图像识别与模拟操作模块,为开发者提供了一个研究自动化技术的具体样本。项目涉及模板匹配、坐标计算等关键技术点,并需处理屏幕适配、操作延迟等实际问

weixin_28745975的博客 333

【六祎 - Framework】2023年;Gradle全局配置;Gradle两种配置;build.gradle & build.gradle.kts配置

Gradle两种配置;build.gradle & build.gradle.kts配置

六祎的博客 3292

SAP Group Reporting入门指南(1)--开篇及系统环境搭建

文章介绍了SAP GR的发展历程、与BPC的对比优势,数据收集的多种方式(实时同步、外部导入等)以及合并整体流程,并推出《SAP Group Reporting入门指南》专栏。

bflyfish的博客 283

Android项目中gradle文件里面的productFlavors一些常用配置,2024届毕业生还没找到Android开发工作

我一直以来都有整理练习大厂面试题的习惯,有随时跳出舒服圈的准备,也许求职者已经很满意现在的工作,薪酬,觉得习惯而且安逸。不过如果公司突然倒闭,或者部门被裁减,还能找到这样或者更好的工作吗?我建议各位,多刷刷面试题,知道最新的技术,每三个月可以去面试一两家公司,因为你已经有不错的工作了,所以可以带着轻松的心态去面试,同时也可以增加面试的经验。我可以将最近整理的一线互联网公司面试真题+解析分享给大家,大概花了三个月的时间整理2246页,帮助大家学习进步。

2401_84153158的博客 1272

部署OpenClaw时设置环境变量提示export: not valid in this context的完整解决方案

OpenClaw环境变量设置错误解决方案 问题概述 在部署OpenClaw时设置环境变量出现"export: not valid in this context"错误,通常由以下原因导致: 在非交互式shell中使用export命令 在命令替换或管道中使用export 脚本文件包含Windows换行符(CRLF) 解决方案 修正脚本执行方式:确保export命令在正确的shell上下文中使用 使用source命令:通过. setup_openclaw.sh或source setup_op

博客 458

ue 打包linux程序 在windows系统 2026

ue 打包linux程序 在windows系统 2026

jacke121的专栏 372

移动开发最新Android项目中gradle文件里面的productFlavors一些常用配置,2024年最新今日头条测试面试题

!最后放上一个大概的Android学习方向及思路(详细的内容太多了~),提供给大家:对于程序员来说,要学习的知识内容、技术有太多太多,这里就先放上一部分,其他的内容有机会在后面的文章向大家呈现出来,不过我自己所有的学习资料都整理成了一个文档,一直在不断学习,希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!Android架构师之路很漫长,一起共勉吧!

2401_84563987的博客 581

【仿真技巧】Smart Eye Probe在ADS信号仿真中的应用

Smart_Eye_Probe是一个眼探头,允许灵活数量的输入通道,输入通道支持单端或差分信号的混合,并且,可以使用一个共同的时钟信号触发通道的眼图。目前,仅支持瞬态(Transient)和通道(Channel Sim)逐位模式(Bit by bit)模拟,不支持信道统计(Statistical)模式和DDR总线(DDRSim)仿真。

一只豌豆象的博客 1270

Android 进阶——Android Studio 项目结构详细述及Gradle脚本语法android子节点buildTypes、productFlavors、variantFilt完全解析(二)

引言 前面一篇文章Android 进阶——Android Studio 项目结构详细述及Gradle脚本语法完全解析(一)总结了下Android Studio中组织Android项目结构的形式,详细介绍了Project下几乎所有重要文件及目录的重要作用,而对于我们Android开发来说比较重要的是编译脚本的gradle.build文件,这篇文章就好好总结下关于如何解读、配置和编写正确的gradle...

最美不过,心中有梦,身旁有你! 4142

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android Gradle 开发与应用 (二): Android 项目结构与构建配置

在 Android 开发中,Gradle 是一个强大的构建工具,它不仅能帮助我们管理项目的依赖,还能简化构建流程,提高开发效率。然而,要充分利用 Gradle 的优势,了解 Android 项目的结构和 Gradle 的构建配置至关重要。本文将详细解析 Android 项目的 Gradle 文件结构,逐步讲解如何配置构建脚本,使你能更高效地管理和构建 Android 项目。

1063

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

android fragment 会加载webview不出来_安卓通过Build Variants定制多个App以及WebView访问https...

1.无图无真相切换对应的项目运行出多个APP(其实只是图标和http请求变了,其他的各位看官可自行添加)2.首先配置app下的build.gradle文件defaultConfig { ......//这个表示原来就有的配置,防止小白一股脑的黏贴进去 /** * 这句很重要 * Gradle 会结合使用您定义的每个类型维度的产品类...

weixin_35726575的博客 309

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

AS中build.gradle文件配置讲解

module中的build.gradle的文件配置。 一般主要包括如下根节点: apply plugin 必须放在第一行,它可以指定这个module是一个应用(用 apply plugin: ‘com.android.application’ 配置),或是一个库(用 apply plugin: ‘com.android.library’ 配置)。 allprejects 依赖中一

zrbcsdn的专栏 5491
上一篇: Android音视频开发入门(1)基础概要,flutter视频教程
下一篇: Android(java)回调函数经典示例,8年Android开发教你如何写简历
flutter架构师
博客等级 码龄5年 47粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值