我试图让一段代码检测到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
}
非常感谢任何帮助。感谢
答案 0 :(得分:10)
如果您想要使用自定义构建类型而不是产品风格,可以使用的是:
if (BuildConfig.BUILD_TYPE.contentEquals("admin")) {
// Do things related to the admin build type.
}
答案 1 :(得分:8)
您可以查看BuildConfig文件。这是创建构建后将获得的文件。
对于你的问题。我认为您应该使用BuildConfig.FLAVOR
而不是BuildConfig.BUILD_TYPE
。并记住它们的类型为String
,因此不需要使用.toString()
最后,您应该使用字符串比较方法。所以,你的代码应该是
if (BuildConfig.FLAVOR.contentEquals("admin")) {
//Do some admin stuff here.
}
答案 2 :(得分:0)
假设你已经
android {
buildTypes {
release {
}
debug {
}
canary {
}
beta {
}
}
在代码中,您可以检查类似
import com.yourpackagename.BuildConfig
if (BuildConfig.BUILD_TYPE == "canary") {
Log.d("Build Type ","I'm canary")
}