29

为什么BuildConfig.DEBUG在我运行应用程序时返回 false?

我用它来控制日志,如下所示:

public static void d(String LOG_TAG, String msg){
    if(BuildConfig.DEBUG){
        Log.d(LOG_TAG,msg);
    }
}
4

9 回答 9

86

检查类中的导入,确保使用正确的 BuildConfig 路径。您可以使用 BuildConfig 不是来自您的应用程序,而是来自某个库。

于 2017-04-03T11:42:45.150 回答
12

在您的 Android Studio构建变体中,您使用的是调试变体吗?

当您使用flavorsfordebug或时应用release

在调试模式下BuildConfig.BUILD为真,在发布模式下为假。

于 2016-04-01T09:41:44.857 回答
7

确保类顶部的构建配置的自动导入语句属于您的项目。

com.your.package.name.BuildConfig

BuildConfig导入可能属于已发布的库,这是DEBUG错误的。

于 2020-04-07T11:18:10.897 回答
6

如果该代码在库中,那么它总是错误的,这要归功于gradle 中存在 3 年的错误

于 2016-08-10T17:57:46.080 回答
5

不要导入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(这可能与自动生成类的默认构建行为冲突)
  • 忽略 lint 错误
  • 运行构建

错误应该消失。

当我升级 Android Studio 和 Gradle 以及清理项目时,我会遇到这种情况。

忽略导入提示

不要导入另一个包BuildConfig——它总是错误的,因为他们没有发布他们的调试版本。

在此处输入图像描述

导入将导致您遇到的错误

在我的项目中,如果我导入建议的库之一,它会显示您遇到的错误,因为没有人发布调试版本,所以如果您指向其他人的,它当然总是错误的。

在此处输入图像描述

在此处输入图像描述

忽略智能感知并运行项目

只需运行构建。该类将自动生成,警告将消失。

在此处输入图像描述

于 2020-05-18T22:36:49.730 回答
3

也许不理想,但我最终创建了自己的

    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编程一样解决它。

于 2017-02-14T22:11:21.023 回答
3

该问题有一个解决方法:

应用程序

dependencies {
    releaseCompile project(path: ':library', configuration: 'release')
    debugCompile project(path: ':library', configuration: 'debug')
}

图书馆

android {
    publishNonDefault true
}
于 2017-02-14T21:57:49.557 回答
3

也许你导入了错误的包,检查一下。(一些 Android 库也有 BuildConfig 类)

于 2018-05-22T22:06:22.440 回答
3

debuggable true在 build.config 中指定,但这总是错误的

进行此更改后,一切正常:

在此处输入图像描述

于 2019-09-18T06:25:57.113 回答