pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

動態生成產品風味

Dynamically generating product flavors(動態生成產品風味)
本文介紹了動態生成產品風味的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我創建了一個需要以多種 (30 多種) 風格構建的 Android 應用.

I've created an Android App which needs to be build in many (30+) flavors.

我的想法是直接從我的 src 目錄中的文件夾結構生成不同的 productFlavors,因為配置總是非常相似(基本上只是另一個 packageName,一個新的啟動器圖標和一些字符串更改).

My idea was to generate the different productFlavors directly from the folder structure in my src directory, since the configuration is always very similar (basically just another packageName, a new launcher icon and some strings change).

src 文件夾如下所示:

└── src
    ├── flavor1
    │?? ├── flavor2.keystore
    │?? ├── res
    ├── flavor2
    │?? ├── res
    │?? ├── flavor2.keystore    
    └── main
     ?? ├── AndroidManifest.xml
     ?? ├── java
     ?? └── res

如果我必須手動創建 gradle 屬性,它會看起來像這樣:

If I had to create the gradle properties by hand it would look somehow like this:

android {

    ....

    productFlavors {
        flavor1 {
            packageName 'com.example.flavor1'
        }
        flavor2 {
            packageName 'com.example.flavor2'
        }
    }

}

每次我嘗試在創建后更改 productFlavors 配置時都??會收到錯誤消息,或者更改/添加會被忽略.
這可能是我造成的問題,因為我的 Gradle/Groovy 經驗非常有限,或者這是不可能的.

Everytime I try to change the productFlavors configuration after its creation I get either an error or the changes / additions are ignored silently.
This could a be problem caused by me, because my Gradle / Groovy experience is very limited, or this isn't possible.

我經常遇到錯誤,說 GroupableProductFlavorDsl_Decorated 無法按照我想要的方式進行操作.

I mostly get error, saying that GroupableProductFlavorDsl_Decorated could not be manipulated the way I want.

我要歸檔的內容應該如下所示:

What I'm trying to archive should somehow look like this:

android {

    ....

    def flavors = getMyFlavorsFromFileSystem()

    productFlavors {

    }

    flavors.each { name, config ->
        productFlavors[name] << config
    }

}

注意:我知道這個問題基本上是重復a> 的一個較老的問題,遺憾的是從未得到回答.由于 Gradle 對 Android 世界來說是一種新事物,我希望自上次提出問題以來得到更多答案,因為現在越來越多的開發人員正在使用 Gradle.

Note: I know this question is basically an duplicate of an older question, which sadly was never answered. Since Gradle is kind of new to the Android world, I'm hoping to get more answers as since the last time the question was asked, because more developers are using Gradle now.

更新:

我嘗試了一些非常簡單的方法:

Here some very simple approaches I tried:

變體 1:

android {

    productFlavors {

    }

    productFlavors['flavor1'] << {
        packageName "com.example.flavor1"
    }

    productFlavors['flavor2'] << {
        packageName "com.example.flavor2"
    }
}

/*

A problem occurred evaluating root project 'MyProject'.
> GroupableProductFlavorDsl with name 'flavor1' not found.

*/

變體 2:

android {

    productFlavors {

    }

    productFlavors['flavor1'] = {
        packageName "com.example.flavor1"
    }

    productFlavors['flavor2'] = {
        packageName "com.example.flavor2"
    }
}

/*

no error, but does not work

*/

變體 3:

android {

    productFlavors {

    }

    productFlavors['flavor1'] = [packageName: "com.example.flavor1"]

    productFlavors['flavor2'] = [packageName: "com.example.flavor2"]
}

/*

no error, but does not work

*/

所有這些都是要點.

推薦答案

通過反復試驗解決:

android {

    // let's assume these are return by a function which reads the filesystem
    def myFlavors = [
        flavor1: [
            packageName: "com.example.flavor1"
        ],
        flavor2: [
            packageName: "com.example.flavor2"
        ]
    ]

    productFlavors {
        myFlavors.each { name, config ->
            "$name" {
                packageName config.packageName
            }
        }
    }

}

這篇關于動態生成產品風味的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

IncompatibleClassChangeError after updating to Android Build Tools 25.1.6 GCM / FCM(更新到 Android Build Tools 25.1.6 GCM/FCM 后出現 IncompatibleClassChangeError)
How to get current flavor in gradle(如何在 gradle 中獲取當前風味)
How to fix quot;unexpected element lt;queriesgt; found in lt;manifestgt;quot; error?(如何修復“意外元素lt;查詢gt;在“清單中找到錯誤?)
Multi flavor app based on multi flavor library in Android Gradle(基于 Android Gradle 中多風味庫的多風味應用)
Android dependency has different version for the compile and runtime(Android 依賴在編譯和運行時有不同的版本)
Transitive dependencies for local aar library(本地 aar 庫的傳遞依賴)
主站蜘蛛池模板: 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 利浦顿蒸汽发生器厂家-电蒸汽发生器/燃气蒸汽发生器_湖北利浦顿热能科技有限公司官网 | 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 引领中高档酒店加盟_含舍·美素酒店品牌官网 | 楼承板设备-楼承板成型机-免浇筑楼承板机器厂家-捡来 | 超声波清洗机-超声波清洗设备定制生产厂家 - 深圳市冠博科技实业有限公司 | 变色龙PPT-国内原创PPT模板交易平台 - PPT贰零 - 西安聚讯网络科技有限公司 | 凝胶成像系统(wb成像系统)百科-上海嘉鹏 | 玖容气动液压设备有限公司-气液增压缸_压力机_增压机_铆接机_增压器 | 酸度计_PH计_特斯拉计-西安云仪 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn | 聚合氯化铝厂家-聚合氯化铝铁价格-河南洁康环保科技 | 自动部分收集器,进口无油隔膜真空泵,SPME固相微萃取头-上海楚定分析仪器有限公司 | 防潮防水通风密闭门源头实力厂家 - 北京酷思帝克门窗 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 湖南长沙商标注册专利申请,长沙公司注册代理记账首选美创! | AGV无人叉车_激光叉车AGV_仓储AGV小车_AGV无人搬运车-南昌IKV机器人有限公司[官网] | 座椅式升降机_无障碍升降平台_残疾人升降平台-南京明顺机械设备有限公司 | 衡阳耐适防护科技有限公司——威仕盾焊接防护用品官网/焊工手套/焊接防护服/皮革防护手套 | 品牌设计_VI设计_电影海报设计_包装设计_LOGO设计-Bacross新越品牌顾问 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 冷油器,取样冷却器,热力除氧器-连云港振辉机械设备有限公司 | 专业甜品培训学校_广东糖水培训_奶茶培训_特色小吃培训_广州烘趣甜品培训机构 | 劳动法网-专业的劳动法和劳动争议仲裁服务网 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 细沙回收机-尾矿干排脱水筛设备-泥石分离机-建筑垃圾分拣机厂家-青州冠诚重工机械有限公司 | 网站优化公司_SEO优化_北京关键词百度快速排名-智恒博网络 | 天津热油泵_管道泵_天津高温热油泵-天津市金丰泰机械泵业有限公司【官方网站】 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 百度关键词优化_网站优化_SEO价格 - 云无限好排名 | LED灯杆屏_LED广告机_户外LED广告机_智慧灯杆_智慧路灯-太龙智显科技(深圳)有限公司 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 | 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 高博医疗集团上海阿特蒙医院 | 联系我们-腾龙公司上分客服微信19116098882| POS机办理_个人POS机免费领取 - 银联POS机申请首页 | 派财经_聚焦数字经济内容服务平台 | 胶原检测试剂盒,弹性蛋白检测试剂盒,类克ELISA试剂盒,阿达木单抗ELISA试剂盒-北京群晓科苑生物技术有限公司 | LNG鹤管_内浮盘价格,上装鹤管,装车撬厂家-连云港赛威特机械 | STRO|DTRO-STRO反渗透膜(科普)_碟滤 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | 沈阳真空机_沈阳真空包装机_沈阳大米真空包装机-沈阳海鹞真空包装机械有限公司 |