Java Android Studio:检查自定义构建类型
我试图让一段代码检测构建类型,但我有点卡住了。 每当我为IF语句输入代码时,它都会说 不兼容的类型。 必需:布尔值。 找到:java.lang.String 当我想到如果结尾有.toString()的话,它就必须是一个字符串 我的检测代码是:Java Android Studio:检查自定义构建类型,java,android,android-studio,android-gradle-plugin,android-build-type,Java,Android,Android Studio,Android Gradle Plugin,Android Build Type,我试图让一段代码检测构建类型,但我有点卡住了。 每当我为IF语句输入代码时,它都会说 不兼容的类型。 必需:布尔值。 找到:java.lang.String 当我想到如果结尾有.toString()的话,它就必须是一个字符串 我的检测代码是: String buildtype = BuildConfig.BUILD_TYPE.toString(); if (buildtype = "admin") { //Do some admin stuff here. } 我在build.grad
String buildtype = BuildConfig.BUILD_TYPE.toString();
if (buildtype = "admin") {
//Do some admin stuff here.
}
我在build.gradle文件中设置了admin BuildType,如下所示:
admin {
debuggable true
jniDebuggable false
renderscriptDebuggable false
minifyEnabled false
zipAlignEnabled true
}
非常感谢您的帮助。谢谢您可以查看您的BuildConfig文件。它是您在创建构建后将获得的文件 谢谢你的提问。我认为您应该使用
BuildConfig.FLAVOR
而不是BuildConfig.BUILD\u TYPE
。记住它们的类型是String
,因此不需要使用.toString()
最后,应该使用字符串比较方法。因此,您的代码应该是
if (BuildConfig.FLAVOR.contentEquals("admin")) {
//Do some admin stuff here.
}
如果您想选择自定义构建类型而不是产品风格,您可以使用的是:
if (BuildConfig.BUILD_TYPE.contentEquals("admin")) {
// Do things related to the admin build type.
}
非常感谢你。这回答了我的问题。快速提问,这是检测产品风格还是构建类型。谢谢你。查看您的
build.gradle
文件。如果admin
在buildTypes
中,它将被检测为buildTypes;如果admin
在productFlavors
中,它将被检测为Flavors。好的,非常感谢!对于我来说,BuildConfig.BUILD\u类型返回的正是构建的名称。其中BuildConfig.FLAVOR返回一个空字符串=
是赋值运算符,这就是为什么它告诉您需要一个布尔值而不是字符串,因为您正在将buildtype
赋值给“admin”
,并且没有检查buildtype
是否等于“admin”
。要检查(参考)相等性,请改用==
。但是,您不应该使用=
来比较字符串。使用someString.equals(…)
。为什么要使用contentEquals
而不是equals
?