23

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

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

当我认为如果最后有 .toString() 时它必须是一个字符串。

我的检测代码是:

String buildtype = BuildConfig.BUILD_TYPE.toString();
if (buildtype = "admin") {
    //Do some admin stuff here.
}

我已经在我的 build.gradle 文件中设置了管理员 BuildType,如下所示:

admin {
        debuggable true
        jniDebuggable false
        renderscriptDebuggable false
        minifyEnabled false
        zipAlignEnabled true
    }

任何帮助是极大的赞赏。谢谢

4

3 回答 3

20

如果您想使用自定义构建类型而不是产品风格,您可以使用的是:

if (BuildConfig.BUILD_TYPE.contentEquals("admin")) {
   // Do things related to the admin build type.
}
于 2016-08-21T10:41:20.987 回答
14

您可以查看您的 BuildConfig 文件。它是您在创建构建后将获得的文件。

对于你的问题。我认为你应该使用BuildConfig.FLAVOR而不是BuildConfig.BUILD_TYPE. 并记住它们的类型是String,所以不需要转换为 String.toString()

最后,您应该使用字符串比较方法。所以,你的代码应该是

if (BuildConfig.FLAVOR.contentEquals("admin")) {
    //Do some admin stuff here.
}
于 2016-03-19T18:05:51.583 回答
1

假设你已经

android {

buildTypes {
    release {
    
    }
    debug {

    }
    canary {

    }
    beta {

    }
}

在代码中,您可以检查类似

import com.yourpackagename.BuildConfig

if (BuildConfig.BUILD_TYPE == "canary") {
        Log.d("Build Type ","I'm canary")
    } 
于 2021-08-02T13:10:30.453 回答