应用场景

通常情况下我们的apps发布后也就是release模式下log是不显示的,debug模式下是显示log的,但是在特殊情况下我们测试release包的时候需要log的时候,就无法使用BuildConfig.DEBUG来达到要求,因为在release模式下自动设置为false,debug模式下是true,这个时候我们需要自定义可控制的log开关。

Android Studio 对应的BuildConfig.java位置

在Studio中生成的目录: /app/build/generated/source/buildConfig/ 文件下的产品目录里面,找到想要的包名下会自动生成BuildConfig.java文件。我们可以看看下release模式下该文件的内容:

/*** Automatically generated file. DO NOT MODIFY*/
package com.leo.kang.cetfour;public final class BuildConfig {public static final boolean DEBUG = false;public static final String APPLICATION_ID = "com.leo.demo";public static final String BUILD_TYPE = "release";public static final String FLAVOR = "baidu";public static final int VERSION_CODE = 47;public static final String VERSION_NAME = "3.6.1";
  public static final boolean LEO_LOG = false;
}

怎样自定义BuildConfig字段

在我们的build.gradle里面加入如下代码:

buildTypes {release {// 不显示Log, 在java代码中的调用方式为:BuildConfig.LOG_DEBUGbuildConfigField "boolean", "LEO_DEBUG", "false"minifyEnabled truezipAlignEnabled trueshrinkResources trueproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'signingConfig signingConfigs.release}debug {// 显示LogbuildConfigField "boolean", "LEO_DEBUG", "true"versionNameSuffix "-debug"minifyEnabled falsezipAlignEnabled falseshrinkResources falsesigningConfig signingConfigs.debug}}

  

语法为:

buildConfigField "boolean", "LEO_DEBUG", "true"

上述语法就定义了一个boolean类型的LEO_DEBUG字段,值为true,之后我们就可以在程序中使用BuildConfig.LEO_DEBUG字段来判断我们所处的api环境。例如:

@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);CommonUtils.getVersionName(this);initViews();if(BuildConfig.LEO_DEBUG) {Log.i("leo", "MainActivity.onCreate()");}}

转载于:https://www.cnblogs.com/kangyi/p/4448398.html

Gradle build设置自动log开关相关推荐

  1. Gradle实践之自定义打包jar+Log开关自动关闭

    2019独角兽企业重金招聘Python工程师标准>>> 上一篇博客介绍了Gradle实践之多渠道自动化打包+版本号管理.由于我在公司里主要是做SDK开发的,这次我想介绍一下如何使用G ...

  2. build gradle settings 设置、读取变量

    需求 可以在 settings.gradle, build.gradle 文件中读取 根据变量 控制编译流程(用什么路径了) 1. 新建gradle文件 好处:settings.gradle.buil ...

  3. android gradle 设置 output文件名,Android gradle build 修改文件名称及目录

    Android gradle build 修改文件名称及目录 android 在build的时候.输出apk的位置在于工程目录下的build文件夹下,名称也是固定的,但是在某些场景下需要对apk进行重 ...

  4. 报错:Gradle build failed.See the Console for details.(已解决)

    CSDN话题挑战赛第2期 参赛话题:面试宝典 报错:Gradle build failed.See the Console for details.(已解决) 1.出现问题: 2.报错信息: 3.总结 ...

  5. Gradle build.gradle配置

    Gradle build.gradle配置 每个构建脚本build.gradle都有一个默认的Project的实例,脚本中所有的操作都在project实例的作用域 1 项目信息 项目信息指项目的坐标 ...

  6. Gradle build.gradle 文件

    build.gradle 是一个 gradle 的构建脚本文件,支持 java.groovy 等语言. 每个 project 都会有一个 build.gradle 文件,该文件是项目构建的入口,可配置 ...

  7. [问题]DotNet 项目如何实现在构建时 Build 号自动增加?

    [问题]DotNet 项目如何实现在构建时 Build 号自动增加? 继续昨天的问题,今天在Google上找了一下,没有找到很好的方案. 目前找到的解决方案有以下几种: 1.使用一个地三方的 VS.N ...

  8. log4j 源码解析_log4j1.x设置自动加载log4j.xml

    在没有设置自动加载log4j.xml的时候,一般我们需要这么处理 static void initLogger() {System.out.println("configurating lo ...

  9. Android Gradle 构建工具(Android Gradle Build Tools)是什么?

    转载地址:http://mrfu.me/android/2015/07/17/New_Android_Gradle_Build_Tools/ 译者地址:[翻]一览新的 Android Gradle 构 ...

最新文章

  1. 关于MVC4项目从32位机移到64位机编译报错解决方案
  2. Android探索之旅 | 为应用添加角标(Badge)
  3. 计算机入门的一些常用小技巧总结
  4. C 和 C++ 宏 详解
  5. 存储器和寄存器数据传输(ARMv8)
  6. Java Web模块——验证码模块
  7. 百度seo排名规则_SEO界的潜规则(百度死不承认的SEO秘密)
  8. 手机号码编码规则是什么?
  9. 歌乎:985博士生对996的困惑
  10. 共享计算机桌面需要密码,win10局域网共享文件需要输密码怎么办?_win10访问共享文件需要密码的解决办法-爱纯净...
  11. 360与腾讯之争之厚黑学分析
  12. Spring07 Java配置
  13. WebStorm如何设置不自动保存,修改出现星星图案
  14. 服务器多网卡多路由策略
  15. mac php开发套件_Mac 下搭建 PHP 开发环境的步骤
  16. 《寂静岭》完全资料手册
  17. 71.JAVA编程思想——JAVA与CGI
  18. JAVA环境配置与连接数据库
  19. python的分支结构使用if保留字_python程序的三种控制结构
  20. 微信转账服务器有问题,微信转账时出现这个界面千万当心,事关你的钱包,这15分钟很关键...

热门文章

  1. Linux stat命令显示文件的状态信息
  2. Hadoop hdfs 使用流来上传文件代码示例
  3. Linux vim的三种模式
  4. 打印JVM配置参数的命令
  5. 【软考-系统架构师】计算机操作系统相关考题答案详解
  6. Qt+VS2013编译报错:'cl' 不是内部或外部命令,也不是可运行的程序
  7. Java中在一个字符串的固定位置插入字符串
  8. 一种提高单片机i/o口驱动能力的方法
  9. sql优化的方法及思路_合理的sql优化思路--如何缩短SQL调优时间?
  10. 下列哪个不是it行业技术岗位_28岁毕业进入IT互联网行业从事技术研发岗位是否还来得及...