子模块中获取BuildConfig

352 阅读1分钟

在library内获取BuildConfig内的配置只能通过反射获取代码如下

/**
 * 反射获得配置文件
 * @param fieldName
 * @return
 */
public static Object getBuildConfigValue(String fieldName) {
    try {
        Class<?> clazz = Class.forName("你的包名.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;
}

需要注意的是如果你使用getPackageName()方法获取包名,你获取的是applicationId而非真正的包名