Android gradle 配置productFlavors 子模块配置productFlavors

news/2024/5/20 2:51:36 标签: productFlavors, gradle, android

文章目录


AndroidStudio gradle 配置 productFlavors

gradle版本
distributionUrl=https://services.gradle.org/distributions/gradle-5.6.4-all.zip

productFlavors_6">主模块配置productFlavors

app/build.gradle

android {
  ...
    flavorDimensions 'default' // 定义必要的配置 否则会报错 可定义多个 flavorDimensions 'default', 'app'
    productFlavors {
   		// 如果用way3方法 该名字不能和主模块相同 否则报错 ERROR: Unable to resolve dependency for ':app@zkDebugUnitTest/compileClasspath':
        coma { 
            dimension = 'default'
             // 定义不同的包名
            applicationId = "com.test.demo1"
            manifestPlaceholders = [
                    KEY_AMAP_API : "xxxxxxxxxxxxxxxxxxxx",
                    // 定义不同的APP名称
//                    APP_LABLE_FLAG : "@string/app_name", 
            ]
            // 自定义buildConfig.java中的变量供代码中使用
            buildConfigField "String", "APPID_BUGLY", '"123151554d"' 

        }

        comb {
            dimension = 'default'
            applicationId = "com.test.demo2"
            manifestPlaceholders = [
                    KEY_AMAP_API : "yyyyyyyyyyyyyyyyyyyy"
            ]
            buildConfigField "String", "APPID_BUGLY", '"adf88sfds8fd"'

        }
    }
}

// way3 begin 不用方法3则不需要定义该way3包裹代码
/*configurations {
    comaDebugImplementation
    comaReleaseImplementation
    combDebugImplementation
    combReleaseImplementation
}*/
// way3 end

dependencies {
    implementation project(':upgrade') // way1 推荐使用该方法
    
    // combImplementation project(path: ":upgrade", configuration: 'comaDebug') // way2 不用定义 configurations 
// way3 begin    
//	  comaImplementation project(path: ":upgrade", configuration: 'bbDebug')
//    comaImplementation project(path: ":upgrade", configuration: 'bbRelease')
//    combDebugImplementation project(path: ":upgrade", configuration: 'ccbDebug')
//    combReleaseImplementation project(path: ":upgrade", configuration: 'ccRelease')
// way3 end
}

productFlavors_62">子模块配置productFlavors

module1/build.gradle

android {
...
    publishNonDefault true
    flavorDimensions 'default'
    productFlavors {
        coma {
            dimension = 'default'
            buildConfigField "String", "APPID_BUGLY", '"123151554d"'
        }

        comb {
            dimension = 'default'
            buildConfigField "String", "APPID_BUGLY", '"adf88sfds8fd"'
        }
    }
}

参考:
http://www.luyixian.cn/news_show_349834.aspx


http://www.niftyadmin.cn/n/1242060.html

相关文章

Qt小例子学习91 - 获取网络令牌

Qt小例子学习91 - 获取网络令牌 SpotifyWrapper.h #include "spotifywrapper.h" #include "networkaccessmanager.h" #include "constants.h"#include <QDesktopServices> #include <QOAuthHttpServerReplyHandler> #include <…

Day204.前端页面环境搭建、讲师列表前端实现 -谷粒学院

谷粒学院 搭建项目前端页面环境 一、vue-element-admin 1、简介 而vue-element-admin是基于element-ui 的一套后台管理系统集成方案。 功能&#xff1a;https://panjiachen.github.io/vue-element-admin-site/zh/guide/#%E5%8A%9F%E8%83%BD GitHub地址&#xff1a;https:…

都工作两年了,还不知道浮点数如何转二进制?

来吧&#xff0c;坐下聊 先前在前文 《老大说&#xff1a;谁要再用double定义商品金额&#xff0c;就自己收拾东西走》 中就已经痛彻心扉地聊过&#xff1a; 在处理诸如 订单交易、货币计算、以及商品金额慎用浮点数&#xff08;double/float&#xff09;去定义变量&#xff0c…

Qt小例子学习92 - 点击创建series createSerie

Qt小例子学习92 - 点击创建series createSerie Helper.h #ifndef HELPER_H #define HELPER_H#include <QObject>class QQuickItem;class Helper : public QObject {Q_OBJECT public:using QObject::QObject;Q_INVOKABLE void createSerie(QQuickItem *chartview);Q_INV…

不用社保也可以办理深圳居住证(全程网上办理) 解决提交后一直暂存状态

不用社保也可以办理深圳居住证 很多小伙伴办理居住证 都卡在社保这一条件 其实&#xff0c;只要符合人才引进规定的非深户 在办理居住登记后可直接办理居住证呢 而且全程在网上办理 在家里就可以轻松完成 哪些人符合条件 一、高层次专业人才 高层次专业人才是需要认证的&…

Day205.阿里云OSS、讲师管理前后端【上传头像功能】、课程分类管理【环境搭建、Excel文件读取添加数据库】 -谷粒学院

谷粒学院 阿里云存储OSS 一、对象存储OSS 为了解决海量数据存储与弹性扩容&#xff0c;项目中我们采用云存储的解决方案 - 阿里云 OSS 。 1、开通“对象存储OSS”服务 &#xff08; 0 &#xff09;www.aliyun.com &#xff08; 1 &#xff09;申请阿里云账号 &#xff0…

Vulkan开发实战详解 学习笔记 - 点法向量和面法向量

点法向量和面法向量 是基于球面开发的&#xff0c;球面属于连续、平滑的曲面&#xff0c;因此面上的每个顶点都有确定的法向量。但现实世界中的物体表面并不都是连续、平滑的&#xff0c;此时对于面上的某些点的法向量计算就不那么直观了. 从图5-18中可以看出&#xff0c;顶点…

Day206.课程分类【导入功能】前端实现、 课程分类列表【显示功能】、课程管理【模块需求、添加课程功能】 -谷粒学院

谷粒学院 【课程分类】—导入前端实现 一、配置路由 1、添加路由 src/router/index.js //课程分类{path: subject,component: Layout,redirect: /edu/subject/list,name: Subject,meta: { title: 课程分类管理, icon: nested },children: [{path: /list,name: 课程分类列表…