Android gradle库资源的产品风味

Android gradle库资源的产品风味,第1张

概述更新为gradle 1.12, android studio 0.10的gradle插件. 我的项目有以下结构: >第三方 >图形 >图标集 > IconsetBase(android-library) > Iconset1(android-library) > Iconset2(android-library) > MainProject > src >主要(主要项目) >风味1 >风味2 > 更新为gradle 1.12,android studio 0.10的gradle插件.

我的项目有以下结构:

>第三方

>图形

>图标集

> IconsetBase(android-library)
> Iconset1(android-library)
> Iconset2(android-library)

> MainProject

> src

>主要(主要项目)
>风味1
>风味2
> ……

如何将IconsetBase Iconset1的res文件夹内容合并到flavor1和IconsetBase Iconset2到flavor2?

在升级到新gradle之前,这个库(IconsetBase,Iconset1和Iconset2)具有与main相同的包名称

这是我的主要项目的build.gradle:

buildscript {    repositorIEs {        mavenCentral()    }    dependencIEs {        repositorIEs {            mavenCentral()        }        classpath 'com.androID.tools.build:gradle:0.10.0'    }}apply plugin: 'androID'repositorIEs {    mavenCentral()}androID {    uSEOldManifestMerger false    compileSdkVersion 19    buildToolsversion "19.0.3"    lintoptions {       ...    } sourceSets {    main.java.srcDirs = ['src/main/java']    main.resources.srcDirs = ['src/main/res']}signingConfigs {    ...}buildTypes {    ...}// Common dependencIEsdependencIEs {   compile project(':3rdparty:Graphics:Iconsets:IconsetBase')}defaultConfig {    ...}productFlavors {    flavor1         { packagename "..."}    flavor2         { packagename "..."}}androID.sourceSets.flavor1 {    dependencIEs { compile project(':3rdparty:Graphics:Iconsets:Iconset1') }    res { srcDir 'flavor1' }    resources { srcDir 'flavor1' }}androID.sourceSets.flavor2 {    dependencIEs { compile project(':3rdparty:Graphics:Iconsets:Iconset2') }    res { srcDir 'flavor2' }    resources { srcDir 'flavor2' }}}dependencIEs {    compile 'com.androID.support:support-v4:19.1.0'    compile 'com.androID.support:appcompat-v7:19.1.0'    compile 'com.Google.androID.gms:play-services:4.3.23'}

= EDIT =

进一步说明:

我寻求的是动态地合并来自另一个位置的资源.

背景:flavor1有基本图标设置图像icon1和icon2,flavor2也有基本iconset和icon1和icon2,但每个图标集的图标不同.否则我必须多次使用icon1,icon2等每个味道,并且这些图标的更新/更改必须对现有的每种味道都做(我有20多个)

这可以通过一些没有库的自定义任务来实现吗?

解决方法 您可以通过flavor定义特定依赖项:

productFlavors {    flavor1 {       ...       dependencIEs {         flavor1Compile project(':iconSet1')       }    }    flavor2 {       ...       dependencIEs {         flavor2Compile project(':iconSet2')       }    } }

在您的构建中,依赖项位于SourceSets中,这是错误的.

编辑

好的,我希望我现在能更好地理解你的目标.您可以做的是为每个flavor定义多个资源目录:

androID {    sourceSets {        flavor1 {            res.srcDirs = ['flavor1','../3rdparty/Graphics/Iconsets/Iconset1/res']        }        flavor2 {            res.srcDirs = ['flavor2','../3rdparty/Graphics/Iconsets/Iconset2/res']        }    }}
总结

以上是内存溢出为你收集整理的Android gradle库资源的产品风味全部内容,希望文章能够帮你解决Android gradle库资源的产品风味所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1130037.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存