子模块下判断App的buildType,老师有什么好的方式么?
来源:4-2 网络库的封装,泛型参数边界2

Da丶
2020-02-28
例如在课程中,network模块下,初始OkHttpClient时,我想动态的添加拦截器
if(BuildConfig.Debug){
//addxxx
}
但是我发现子模块的BuildConfig是不准确的。
我简单去了解下,网上比较OK的操作是这样:
debugCompile project(path: ':common', configuration: 'debug')
releaseCompile project(path: ':common', configuration: 'release')
}
所以想请教下老师,有没有更合适的方式
写回答
1回答
-
如下方法,可以获取到主工程的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");
122020-02-28
相似问题