gpt4 book ai didi

android - 如何在父gradle文件中访问gradle defaultConfig

转载 作者:行者123 更新时间:2023-12-03 05:05:00 26 4
gpt4 key购买 nike

我想访问在子项目(app-> build.gradle)中定义为父build.gradle的defaultConfig,但似乎无法正常工作,或者我做错了。实际上,我需要访问在app build.gralde文件的defaultConfig中定义的buildvarient。

应用程序build.gradle:

android {
def buildTypeV // define here to update in loop

dependencies.metaClass.allCompile { dependency ->
buildTypes.each { buildType ->
// "${buildType.name}Compile" project(path: ":${dependency.name}", configuration: buildType.name)
buildTypeV=buildType.name
}
}

defaultConfig {
versionNameSuffix "${buildTypeV}"
}

从父build.gradle文件,我这样做是为了访问versionNameSuffix:
gradle.buildFinished {

def buildV=${project.android.defaultConfig.versionNameSuffix};
println "buildV:::: $buildV"

}

由于构建失败,因此访问defaultConfig似乎是错误的方法。有人可以告诉我如何正确访问它吗?

我在控制台上看到的错误:
* What went wrong:
Could not find method $() for arguments [build_8kbbn8x9zcumz6eqfx8ryt61s$_run_closure2$_closure3@77596dd9] on root project 'df-backpack' of type org.gradle.api.Project.

在我的子项目中,定义应用程序变体:
android.applicationVariants.all { variant ->
variant.outputs.all {
def flavor = variant.name
outputFileName = "../app-${flavor}-final.apk"
}
variant.assembleProvider.get().doLast getbuilder(variant.name.toLowerCase())
}

//在父build.gradle中:
 project('hpnurse') {
buildStr=it. android.applicationVariants.all;
//also tried like this
//it.variant.buildType.name;

}

最佳答案

调用project.android时,您引用的是调用者项目,在本例中为父项目。相反,您应该引用您的Android子项目。

在父项目中,您可以使用project(name)按名称访问特定的子项目。

gradle.buildFinished {
project('app') {
def buildV = it.android.defaultConfig.versionNameSuffix
println "buildV:::: $buildV"
}
}

关于android - 如何在父gradle文件中访问gradle defaultConfig,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61060401/

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