当我运行应用程序时,为什么BuildConfig.DEBUG
会返回false?
我使用它来控制日志,如下所示:
public static void d(String LOG_TAG, String msg){
if(BuildConfig.DEBUG){
Log.d(LOG_TAG,msg);
}
}
当我运行应用程序时,为什么BuildConfig.DEBUG
会返回false?
我使用它来控制日志,如下所示:
public static void d(String LOG_TAG, String msg){
if(BuildConfig.DEBUG){
Log.d(LOG_TAG,msg);
}
}
检查类中的导入,确保使用正确的 BuildConfig 路径。您可以使用来自某个库而不是应用程序的 BuildConfig。
com.myurl.mypackage.BuildConfig
,而不是兼容性版本或任何其他Android或库版本。 - Gary99import com.facebook.react.BuildConfig;
,请务必导入您自己的BuildConfig!否则,当您晃动设备时,您的Dev菜单将永远不会出现。 - Airman00您的Android Studio的构建变体是在调试变体上吗?
这适用于使用flavors
(即debug
或release
)的情况。
在调试模式下,BuildConfig.BUILD
为真,在发布模式下,它为假。
确保构建配置的自动导入语句在您的类的顶部属于您的项目。
com.your.package.name.BuildConfig
BuildConfig
导入可能属于一个已发布的库,其中 DEBUG
为 false。
BuildConfig
。这是一个自动生成的类,导入它是不必要的,尽管Android Studio可能会提示你这样做。BuildConfig
,可能是因为你需要进行初始Gradle构建来创建自动生成的类,这个类最终被创建在com.yourdomain.yourapp.BuildConfig
。当你升级Android Studio和Gradle,或者运行Build -> Clean project时,就会发生这种情况。BuildConfig
,那么肯定会一直是false,因为他们只发布了发布版本而不是调试版本。build.gradle
的问题,我发现指定buildType
会与Android Studio的默认行为以及它生成的BuildConfig
产生冲突,导致我有一个重复的条目。BuildConfig
(让它保持红色)buildType
添加到您的build.gradle
中(这可能会与自动生成类的默认构建行为冲突)错误应该会消失。
当我升级Android Studio和Gradle以及清理项目时,我遇到了这个问题。
忽略导入提示
不要导入另一个包的BuildConfig
- 它将始终为false,因为他们没有发布调试版本。
导入会导致您遇到的错误
在我的项目中,如果我导入建议的库之一,它将显示您正在遇到的错误,因为没有人发布调试版本,所以如果您指向别人的版本,它肯定会始终为false。
忽略智能感知并运行项目。 buildTypes {
debug {
buildConfigField "boolean", "IS_DEBUG", "true" // Had issues with BuildConfig.DEBUG, created IS_DEBUG to ensure functionality behaved as expected.
}
release {
signingConfig signingConfigs.release
buildConfigField "boolean", "IS_DEBUG", "false"
}
}
然后通过编程方式像这样处理 BuildConfig.IS_DEBUG
。
BuildConfig.DEBUG
的值会发生变化。但是感谢您提供了在BuildConfig级别创建常量的想法。 - Abhinav SaxenaBuildConfig
的常量半动态化,您应该使用flavors。但这超出了本问题的范围。 - Abhinav Saxenadependencies {
releaseCompile project(path: ':library', configuration: 'release')
debugCompile project(path: ':library', configuration: 'debug')
}
图书馆
android {
publishNonDefault true
}