BuildConfig.DEBUG始终返回false

coc*_*coa 15 android android-log

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

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

public static void d(String LOG_TAG, String msg){
    if(BuildConfig.DEBUG){
        Log.d(LOG_TAG,msg);
    }
}
Run Code Online (Sandbox Code Playgroud)

Dmi*_*din 45

检查类中的导入,确保使用正确的Bui​​ldConfig路径.您可以使用BuildConfig,而不是从您的应用程序,但从某些库.

  • 这个简单的单段答案被低估了。 (7认同)
  • 是。您要“导入com.myurl.mypackage.BuildConfig”,而不是compat或任何其他Android或库版本。 (3认同)

jee*_*wat 9

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

com.your.package.name.BuildConfig
Run Code Online (Sandbox Code Playgroud)

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


mar*_*o16 7

在您的Android Studio 构建版本中您是否使用调试变体?

这适用于你使用时flavors,debugrelease.或.

在调试模式下,BuildConfig.BUILD为true,在发布模式下,它为false.


Tin*_*ina 7

不要导入BuildConfig。这是一个自动生成的类,无论 Android Studio 可能告诉您什么,都没有必要导入它。

\n\n

如果 Android Studio 提示您导入,BuildConfig可能是因为您需要执行初始 Gradle 构建来创建自动生成的类,该类最终在com.yourdomain.yourapp.BuildConfig. 当您升级 Android Studio 和 Gradle 或运行Build -> Clean project.

\n\n

如果您导入另一个包BuildConfig,那么它当然总是错误的,因为它们仅发布其发布风格,而不是其调试风格。

\n\n

关于建议修改您的 的其他答案build.gradle,我发现指定buildType与 Android Studio 及其生成的默认行为相冲突BuildConfig,说明我有一个重复的条目。

\n\n

所以本质上是:

\n\n
    \n
  • 不要导入任何包BuildConfig(所以让它保持红色)
  • \n
  • 不要添加buildType到您的build.gradle(这可能与自动生成类的默认构建行为冲突)
  • \n
  • 忽略 lint 错误
  • \n
  • 运行构建
  • \n
\n\n

错误应该消失。

\n\n

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

\n\n

忽略导入提示

\n\n

不要导入另一个包的 \xe2 BuildConfig\x80\x94 它始终为 false,因为它们没有发布其调试版本。

\n\n

在此输入图像描述

\n\n

导入将导致您遇到的错误

\n\n

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

\n\n

在此输入图像描述

\n\n

在此输入图像描述

\n\n

忽略智能感知并运行项目

\n\n

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

\n\n

在此输入图像描述

\n


Law*_*oot 6

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