【问题标题】:remove logging from release apk file using gradle使用 gradle 从发布 apk 文件中删除日志记录
【发布时间】:2015-11-12 10:46:52
【问题描述】:

我正在尝试从发布 apk 文件中删除日志记录。我遵循了使用 BuildConfig.DEBUG 变量的建议,这对于调试版本为 true,否则为 false。

在常量文件中,我有:

public static final LOG_ENABLED = BuildConfig.DEBUG;

然后我在记录之前检查变量。

if(Constants.LOG_ENABLED){
   // print Log
}

然后,在gradle构建文件中,我添加了android

{ buildTypes { release { minifyEnabled true shrinkResources true } } } 。然后我运行gradle assembleRelease,但日志仍然保留在 apk 文件中?

有人可以告诉我我的方式的错误吗?

【问题讨论】:

  • 似乎这会单独删除 log.d() 的日志
  • 不幸的是,甚至 log.d 也没有被删除。看来我做错了什么。
  • 检查此链接是否有帮助 *.com/questions/9855834/…
  • 如果您基于布尔值进行日志记录,您可以在发布 apk 之前将该变量 LOG_ENABLED 设置为 false

标签: android gradle


【解决方案1】:

喏,

很抱歉加入派对太晚了,但是:

  • 总的来说,现在我会选择this solution
  • 在您的 sn-p 中,我认为您可能必须明确 boolean 类型:

    public static final boolean LOG_ENABLED = BuildConfig.DEBUG;

让它工作,就像在这些其他答案中一样:[1],[2]

  • 从历史上看,BuildConfig.DEBUG; 一直受到known issues 的影响 - 还有with libraries - 可以找到适用于 Eclipse 和 Android Studio 的解决方案,例如 here

希望对你有帮助

祝你有美好的一天,
安东尼诺

【讨论】: