为什么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 不是来自您的应用程序,而是来自某个库。
在您的 Android Studio构建变体中,您使用的是调试变体吗?
当您使用flavors
fordebug
或时应用release
。
在调试模式下BuildConfig.BUILD
为真,在发布模式下为假。
确保类顶部的构建配置的自动导入语句属于您的项目。
com.your.package.name.BuildConfig
BuildConfig
导入可能属于已发布的库,这是DEBUG
错误的。
如果该代码在库中,那么它总是错误的,这要归功于gradle 中存在 3 年的错误。
不要导入BuildConfig
. 这是一个自动生成的类,不需要导入它,尽管 Android Studio 可能会告诉你。
如果 Android Studio 提示您导入BuildConfig
,可能是因为您需要进行初始 Gradle 构建以创建自动生成的类,该类最终在com.yourdomain.yourapp.BuildConfig
. 当您升级 Android Studio 和 Gradle 或运行Build -> Clean project.
如果你导入另一个包BuildConfig
,那么它当然总是错误的,因为它们只发布他们的发布风格而不是他们的调试风格。
关于建议修改您的其他答案build.gradle
,我发现指定buildType
与 Android Studio 的默认行为及其生成冲突BuildConfig
,说明我有一个重复的条目。
所以本质上:
BuildConfig
(所以让它保持红色)buildType
到您的build.gradle
(这可能与自动生成类的默认构建行为冲突)错误应该消失。
当我升级 Android Studio 和 Gradle 以及清理项目时,我会遇到这种情况。
忽略导入提示
不要导入另一个包BuildConfig
——它总是错误的,因为他们没有发布他们的调试版本。
导入将导致您遇到的错误
在我的项目中,如果我导入建议的库之一,它会显示您遇到的错误,因为没有人发布调试版本,所以如果您指向其他人的,它当然总是错误的。
忽略智能感知并运行项目
只需运行构建。该类将自动生成,警告将消失。
也许不理想,但我最终创建了自己的
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
编程一样解决它。
该问题有一个解决方法:
应用程序
dependencies {
releaseCompile project(path: ':library', configuration: 'release')
debugCompile project(path: ':library', configuration: 'debug')
}
图书馆
android {
publishNonDefault true
}
也许你导入了错误的包,检查一下。(一些 Android 库也有 BuildConfig 类)