gpt4 book ai didi

android - 如何使用 Gradle 将 Android 配置注入(inject)每个子项目?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:57:58 25 4
gpt4 key购买 nike

而不是在每个子项目中复制 android 配置 block :

android {
compileSdkVersion 19
buildToolsVersion "19.0.0"

defaultConfig {
minSdkVersion 9
targetSdkVersion 14
}
}

我宁愿把它放在顶级/根 gradle 构建文件中,如:

subprojects{
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"

defaultConfig {
minSdkVersion 9
targetSdkVersion 14
}
}
}

但是,这是行不通的。 :(

错误:“..找不到参数的 android() 方法……”

最佳答案

解决办法是:

subprojects{
afterEvaluate {
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"

defaultConfig {
minSdkVersion 9
targetSdkVersion 14
}
}
}
}

据我所知,这是因为在评估时处理/使用 android{...} 意味着它必须尽快出现(即明确写入或包含为“应用插件”的一部分)它命中根构建文件中的子项目。而且,更准确地说,这意味着顶级项目必须定义它(它可能没有定义,因为它可能不是“android”或“android-library”构建本身)。但是,如果我们将它推到评估之后,它就可以直接使用每个子项目中可用的内容。

这个问题+解决方案还假设所有子项目都是某种形式的 android 项目(在我的情况下是正确的,但对其他人来说不一定)。更安全的答案是使用:

subprojects{
afterEvaluate {
if(it.hasProperty('android')){
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"

defaultConfig {
minSdkVersion 9
targetSdkVersion 14
}
}
}
}
}

关于android - 如何使用 Gradle 将 Android 配置注入(inject)每个子项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21032271/

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