【问题标题】:Android Studio: Check for a custom build typeAndroid Studio:检查自定义构建类型
【发布时间】:2016-07-06 10:23:16
【问题描述】:

我正在尝试让一段代码检测 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
    }

非常感谢任何帮助。谢谢

【问题讨论】:

  • =assignment 运算符,这就是为什么它告诉您需要一个布尔值而不是字符串,因为您将 buildtype 分配给 "admin" , 并且不检查 buildtype 是否 等于 "admin"。要检查(参考)是否相等,请改用==。而且,您应该使用== 来比较字符串。为此使用someString.equals(...)

标签: java android android-studio android-gradle-plugin android-build-type


【解决方案1】:

假设你已经

android {

buildTypes {
    release {
    
    }
    debug {

    }
    canary {

    }
    beta {

    }
}

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

import com.yourpackagename.BuildConfig

if (BuildConfig.BUILD_TYPE == "canary") {
        Log.d("Build Type ","I'm canary")
    } 

【讨论】:

    【解决方案2】:

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

    if (BuildConfig.BUILD_TYPE.contentEquals("admin")) {
       // Do things related to the admin build type.
    }
    

    【讨论】:

    • 你为什么用contentEquals而不是equals
    【解决方案3】:

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

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

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

    if (BuildConfig.FLAVOR.contentEquals("admin")) {
        //Do some admin stuff here.
    }
    

    【讨论】:

    • 非常感谢。这回答了我的问题。
    • 快速提问,这是检测 productFlavors 还是 BuildTypes。谢谢
    • 视情况而定。查看您的build.gradle 文件。如果adminbuildTypes 中,它将被检测为BuildTypes 如果adminproductFlavors 中,它将被检测为Flavor。
    • 好的,非常感谢!
    • 对我来说 BuildConfig.BUILD_TYPE 返回构建的名称。其中 BuildConfig.FLAVOR 返回一个空字符串
    猜你喜欢
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多