App 组件化 多渠道打包 BuildConfig 全局配置(子模块获取)

时间:2025-01-25 09:32:44

方法一、Application 全局配置

主项目 build gradle 中多渠道配置对应字段

productFlavors {

Test{

buildConfigField "String", "FRANCHISEE", "test"

}

}

build 项目 会自动生成

在 Application 中配置全局变量,并指向

方法二、

主项目 build gradle 中多渠道占位符设置

productFlavors {

Test{

manifestPlaceholders = [
        DOMAIN_LINK : "test path"
]

}

}

主项目 文件中配置 Meta-data

<meta-data android:name="DOMAIN_LINK" android:value="${DOMAIN_LINK}"/>

通过AppInfo 获取对应 meta-data

fun getBaseUrl(context: Context, metaName: String):String {

    val appInfo = (,PackageManager.GET_META_DATA);

    return (metaName) as String;

}

方法三、类似方法一设置,获取 后,通过反射获取对应字段

public static Object getBuildConfigValue(Context context, String fieldName) {
    try {
        Class<?> clazz = (() + ".BuildConfig");
        Field field = (fieldName);
        return (null);
    } catch (Exception e) {
        ();
    } 
    return null;
}