gpt4 book ai didi

android - Gradle:如何指定库的两个源集并在项目中添加依赖项

转载 作者:行者123 更新时间:2023-11-30 00:23:44 24 4
gpt4 key购买 nike

我尝试指定一个 gradle 库的两个不同的源集,并在项目中添加一个源集特定的依赖项。

enter image description here

我们的想法是做这样的事情:

库 build.gradle 文件:

apply plugin: 'com.android.library'

android {
...
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'

java {
srcDir 'src'
}
res {
srcDir 'res'
}
}

exclude_fr_it{
manifest.srcFile 'AndroidManifest.xml'

java {
srcDir 'src'
}
res {
srcDir 'res'
exclude 'res/values/values-fr'
exclude 'res/values/values-it'
}
}
}
...
}
...

在项目 A 中,我想包含主要的源代码集:

dependencies {
compile project(':explore_layout')
}

在项目 B 中,我想包含使用 sourceset exclude_fr_it 的构建。

dependencies {
compile project(':explore_layout') library 'exclude_fr_it'
}

我试图理解文档。但我不知道如何做到这一点......

Question 1

Doc

Question 2

最佳答案

这不是对 sourceSets 问题的直接回答。但您可能根本不需要使用 sourceSets 功能。

如果您只是希望您的应用在您的自定义 android 库中包含一部分资源,您可以使用应用的 build.gradle 中的配置 block 来实现。 (事实上​​,该库根本不需要“main”和“exclude_fr_it”源集的那些特殊配置 block 。)

这是可能的,因为“resConfigs”属性。

特别是,假设您的图书馆具有三种语言的资源配置:“en”、“fr”和“it”。

然后,在包含库中所有语言的项目 A 中,您只需在 build.gradle 中使用它:

dependencies {
compile project(':explore_layout')
}

但是,在您想要排除自定义库的“fr”和“it”资源的项目 B 中,您可以在配置闭包中使用“resConfigs”属性来仅包括这样的资源子集:

dependencies {
compile project(':explore_layout') {
android {
defaultConfig {
resConfigs 'en'
}
}
}
}

关于android - Gradle:如何指定库的两个源集并在项目中添加依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45800829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com