Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Studio:检查自定义构建类型_Java_Android_Android Studio_Android Gradle Plugin_Android Build Type - Fatal编程技术网

Java Android Studio:检查自定义构建类型

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

我试图让一段代码检测构建类型,但我有点卡住了。 每当我为IF语句输入代码时,它都会说

不兼容的类型。 必需:布尔值。 找到:java.lang.String

当我想到如果结尾有.toString()的话,它就必须是一个字符串

我的检测代码是:

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