产品风格的Android Gradle库资源

更新至gradle 1.12,适用于Android Studio 0.10的gradle插件。

我的项目具有以下结构:

  • 第三党

    • 图形
      • 图标集
        • IconsetBase(android-library)
        • Iconset1(android-library)
        • Iconset2(android-library)
  • 主项目

    • 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 dependencies
dependencies {
   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'
}

=编辑=

进一步说明:

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

背景:flavor1的基本图标集设置为图像icon1和icon2,flavor2的基本图标集也设置为icon1和icon2,但每个图标集的图标不同。否则,我将不得不多次针对每种口味设置icon1,icon2等,并且在这些图标的更新/更改上必须针对现有的每种口味进行(我有20多种)

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

本75

您可以通过flavor定义特定的依赖项:

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

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


编辑

好的,我希望我现在能更好地了解您的目标。您可以做的是为每种口味定义多个资源目录:

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

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有可穿戴式应用程序的Android Gradle产品风格

来自分类Dev

用gradle构建android,替换每个产品风格的字符串

来自分类Dev

带有可穿戴式应用程序的Android Gradle产品风格

来自分类Dev

Android,Gradle允许具有某些产品风格的某些构建类型

来自分类Dev

Android Gradle插件如何处理库中冲突的资源?

来自分类Dev

Android Studio,Gradle,如何使用外部库资源?

来自分类Dev

Android风格,Gradle sourceSets合并

来自分类Dev

删除具有Gradle产品风格的AndroidManifest元素

来自分类Dev

删除带有Gradle产品风格的AndroidManifest元素

来自分类Dev

带有Android风格的Gradle applicationId

来自分类Dev

在Android Studio的产品风格中使用Crashlytics

来自分类Dev

Android库资源

来自分类Dev

Android库资源

来自分类Dev

上一个Android Studio中的android gradle风格

来自分类Dev

覆盖库Android中的资源

来自分类Dev

如何访问Android库的资源?

来自分类Dev

缺少Android CardView库的资源

来自分类常见问题

Android在代码中使用Gradle Build风格,例如if情况

来自分类Dev

Android Studio Gradle风格未在Build Variants中显示

来自分类Dev

Android Gradle Plugin 3.0.1 versionNameSuffix 覆盖风格维度

来自分类Dev

具有产品风格的 Android SDK 身份验证

来自分类Dev

Gradle android插件,如何根据不同的产品口味复制加载不同的动态库?

来自分类Dev

什么是Android Gradle中的“资源生成任务”?

来自分类Dev

Android Gradle合并字符串资源

来自分类Dev

在Gradle Android中获取重复的资源错误

来自分类Dev

使用gradle构建特定的Android产品风味时,可以排除区域资源(例如values-fr)吗?

来自分类Dev

带有资源的Android Studio Android库

来自分类Dev

Android Specific Gradle产品风味组合

来自分类Dev

Android,Gradle,产品口味和清单

Related 相关文章

  1. 1

    带有可穿戴式应用程序的Android Gradle产品风格

  2. 2

    用gradle构建android,替换每个产品风格的字符串

  3. 3

    带有可穿戴式应用程序的Android Gradle产品风格

  4. 4

    Android,Gradle允许具有某些产品风格的某些构建类型

  5. 5

    Android Gradle插件如何处理库中冲突的资源?

  6. 6

    Android Studio,Gradle,如何使用外部库资源?

  7. 7

    Android风格,Gradle sourceSets合并

  8. 8

    删除具有Gradle产品风格的AndroidManifest元素

  9. 9

    删除带有Gradle产品风格的AndroidManifest元素

  10. 10

    带有Android风格的Gradle applicationId

  11. 11

    在Android Studio的产品风格中使用Crashlytics

  12. 12

    Android库资源

  13. 13

    Android库资源

  14. 14

    上一个Android Studio中的android gradle风格

  15. 15

    覆盖库Android中的资源

  16. 16

    如何访问Android库的资源?

  17. 17

    缺少Android CardView库的资源

  18. 18

    Android在代码中使用Gradle Build风格,例如if情况

  19. 19

    Android Studio Gradle风格未在Build Variants中显示

  20. 20

    Android Gradle Plugin 3.0.1 versionNameSuffix 覆盖风格维度

  21. 21

    具有产品风格的 Android SDK 身份验证

  22. 22

    Gradle android插件,如何根据不同的产品口味复制加载不同的动态库?

  23. 23

    什么是Android Gradle中的“资源生成任务”?

  24. 24

    Android Gradle合并字符串资源

  25. 25

    在Gradle Android中获取重复的资源错误

  26. 26

    使用gradle构建特定的Android产品风味时,可以排除区域资源(例如values-fr)吗?

  27. 27

    带有资源的Android Studio Android库

  28. 28

    Android Specific Gradle产品风味组合

  29. 29

    Android,Gradle,产品口味和清单

热门标签

归档