android - 无法在应用程序 gradle 文件中引用 BuildConfig - Android Studio
问题描述
我正在尝试基本gradle
功能。我正在尝试打印当前正在构建的产品风味。我的 gradle 构建文件如下所示:
android {
compileSdkVersion 27
flavorDimensions "versionCode"
defaultConfig {
applicationId "com.test.test"
minSdkVersion 21
targetSdkVersion 27
versionCode 34
versionName "0.9.14.20180718"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
debug {
debuggable false
multiDexEnabled true
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
release {
debuggable false
minifyEnabled true //for optimization.
shrinkResources true
multiDexEnabled true
logger.debug("Hello world.")
logger.debug("Build flavor being used: " + BuildConfig.FLAVOR)
//check for build flavour.
/*if(BuildConfig.FLAVOR.contentEquals("managed")) {
logger.debug("Managed flavour being used here.")
} else if(BuildConfig.FLAVOR.contentEquals("debugFlavor")) {
logger.debug("Debug flavor being used.")
}*/
//proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
productFlavors {
managed {
applicationId 'com.test.testing'
}
debugFlavor {
applicationId 'com.test.testdebug
}
}
}
每当我尝试更改 Gradle 文件时,都会在同步时收到以下错误:
Error:(30, 0) Could not get unknown property 'BuildConfig' for BuildType_Decorated{name=release, debuggable=false, testCoverageEnabled=false, jniDebuggable=false, pseudoLocalesEnabled=false, renderscriptDebuggable=false, renderscriptOptimLevel=3, minifyEnabled=true, zipAlignEnabled=true, signingConfig=null, embedMicroApp=true, mBuildConfigFields={}, mResValues={}, mProguardFiles=[], mConsumerProguardFiles=[], mManifestPlaceholders={}} of type com.android.build.gradle.internal.dsl.BuildType.
<a href="openFile:I:\work\workspace\test\app\build.gradle">Open File</a>
我不确定错误是什么。我检查了BuildConfig.java
项目存储库中的文件,它们存在并且看起来很好。
解决方案
logger.debug("正在使用的构建风格:" + BuildConfig.FLAVOR)
我不确定错误是什么。我检查了
BuildConfig.java
项目存储库中的文件,它们存在并且看起来很好。
这一行在技术上是错误的,BuildConfig.java
是一个由 gradle build tool 生成的文件,这个文件只能用于你的 Java/Kotlin 的源代码,但不能用于你的任何build.gradle
gradle 脚本文件。
在 gradle 脚本中,打印出构建风格的正确方法如下:
project.afterEvaluate {
android.productFlavors.all { flavor ->
println "flavor.name: " + flavor.name
}
}
如果要打印构建变体,可以按如下方式完成:
android.applicationVariants.all { variant ->
println "variant.name: " + variant.name
}
推荐阅读
- ruby-on-rails - 从PDF的左边框/边缘对水平线进行对虾
- excel - 索引匹配并根据一列上的出现对值求和,并将相应相邻列的值相加
- xamarin.forms - Xamarin Forms - 实际设备上的 iOS 调试挂在启动屏幕上。在模拟器上工作
- android - 如何将 AOSP 上的 Adb 端口从 5555 更改为其他端口
- android - Android Studio 项目的 Git 存储库
- java - Springboot Devtools不热重装?
- dictionary - 减少对象流对我不起作用
- amazon-web-services - 在 AWS EC2 上的何处使用应用程序负载均衡器配置 websocket?
- python - 合并 json 数组
- oracle - 如何使用输入参数(Varray OF INT)执行程序?