Gradle build设置自动log开关
生活随笔
收集整理的這篇文章主要介紹了
Gradle build设置自动log开关
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
應用場景
通常情況下我們的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开关的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡怎样才算刷爆了 使用后要按时还
- 下一篇: 平安信用卡申请一般是多长时间