如何在子模块中获取BuildConfig.DEBUG值
来源:互联网 发布:怎么在淘宝上买小说 编辑:程序博客网 时间:2024/06/03 20:44
在Android开发中,我们使用android.util.Log来打印日志,方便我们的开发调试。但是这些代码不想在发布后执行,我们并不想在软件发布后调试日志被其他开发者看到,我们一般可以通过设定一个布尔类型达常量,来标记软件为Debug模式还是Release模式。
ADT 17版本以后,我们可以通过读取build/BuildConfig.java文件里DEBUG常量来判断。
if (BuildConfig.DEBUG) { android.util.Log.d(TAG,"something");}
但是,如果子项目里也需要用到BuildConfig.DEBUG的值,并像如上的方式直接使用的话,会发现BuildConfig.DEBUG获取到的值一直为false。
出现这种现象的原因是,在子项目里虽然也有bulid文件夹,但是编译成最终apk的时候并未正确去正确编译子项目里的BuildConfig.java文件。
因此若要获取到正确的BuildConfig.DEBUG值,还必须通过反射的方式,获取到主项目里的BuildConfig.DEBUG值。
public static Object getBuildConfigValue(Context context, String fieldName) { try { Class<?> clazz = Class.forName(context.getPackageName() + ".BuildConfig"); Field field = clazz.getField(fieldName); return field.get(null); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return null;}boolean debug = (Boolean) getBuildConfigValue(this, "DEBUG");
这样就可以获得到真正的BuildConfig.DEBUG。
2 0
- 如何在子模块中获取BuildConfig.DEBUG值
- git 子模块以及 在 Jenkins中如何使用
- Maven中如何禁止插件(plugin)在子模块(module)上执行
- BuildConfig 中 DEBUG的作用
- git如何删除子模块
- BuildConfig.DEBUG
- BuildConfig.DEBUG
- android中BuildConfig.DEBUG的使用
- Android开发中BuildConfig.DEBUG的使用
- android中BuildConfig.DEBUG的使用
- android中BuildConfig.DEBUG的使用
- android中BuildConfig.DEBUG的使用
- 子模块
- DesignCompiler获取当前设计中第一层子模块的面积
- 关于如何在svn下载到本地,然后将maven父结构中的子模块导出
- sakai项目中chat子模块解读
- 解决被依赖module中BuildConfig.DEBUG的值总为false问题
- 解决依赖库中BuildConfig.DEBUG的值总为False的问题
- js中的等号问题
- java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' befo
- Linux System Programming读书笔记之deamon进程
- Android的序列化Parcelable接口
- Effective C++ 07:为多态基类声明virtual析构函数
- 如何在子模块中获取BuildConfig.DEBUG值
- bzoj 3668: [Noi2014]起床困难综合症 位运算
- Spring进阶之路(5)-Spring创建Bean的三种方式
- C++中随机函数rand()和srand()的用法
- LeetCode-118. Pascal's Triangle,119. Pascal's Triangle II
- contains依赖于equals方法 验证栈是先进后出
- Spring主要模块及其作用
- PAT 1030
- 取石子(一)