gradle中设置变量,在代码中读取

在app的gradlew文件中设置变量appModelCode,设置manifestPlaceholders

android {
    def appModelCode = 1 //1:模式1 2:模式2
    def appModelName = "model1"
    if (appModelCode == 1) {
        ...
    }

    defaultConfig {
        applicationId appId
        minSdk 26
        targetSdk 32
        versionCode appVerCode
        versionName appVerName

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        manifestPlaceholders = [
                appName     : appModeName,
                appModelCode: appModelCode,
                appModeName : appModeName
        ]
    }
}

在AndroidManifest.xml中的application标签中设置

<application>
    <meta-data android:name="appModelCode" android:value="${appModelCode}"/>
    <meta-data android:name="appModeName" android:value="${appModeName}"/>
</application>

代码中获取AndroidManifest.xml中的值

int code = (Integer) AppUtil.getApplicationPlaceholders(this, "appModelCode");
String name = (String) AppUtil.getApplicationPlaceholders(this, "appModeName");

getApplicationPlaceholders方法

/**
     * 在Application获取 manifestPlaceholders 的值
     *
     * @param context
     * @param key
     * @return
     */
    public static Object getApplicationPlaceholders(Context context, String key) {

        Object placeholdersValues = null;
        try {
            ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
            if (appInfo == null) {
                return placeholdersValues;
            }
            Bundle metaData = appInfo.metaData;
            if (metaData == null) {
                return placeholdersValues;
            }
                placeholdersValues = metaData.get(key);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return placeholdersValues;
    }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,Android的build.gradle文件可以读取YAML文件,并将其的内容用作变量进行配置。以下是一个完整的例子,可以帮助您实现这一目标: 1. 首先,您需要在您的项目根目录下创建一个名为config.yaml的文件,并在其定义您需要的变量。例如,您可以在config.yaml文件定义以下内容: ``` # config.yaml app_name: "My Awesome App" version_code: 1 version_name: "1.0.0" ``` 2. 接下来,您需要在build.gradle文件添加以下代码,以读取config.yaml文件并将其的内容用作变量: ``` // build.gradle import org.yaml.snakeyaml.Yaml def config = new File("${rootDir}/config.yaml") def yaml = new Yaml().load(config.text) android { defaultConfig { applicationId "com.example.myawesomeapp" minSdkVersion 21 targetSdkVersion 30 versionCode yaml.version_code versionName yaml.version_name } } // You can also use the variables in other parts of your build.gradle file task printAppName { doLast { println "The app name is: ${yaml.app_name}" } } ``` 在上面的代码,我们使用YAML库来读取config.yaml文件的内容,并将其存储在yaml变量。然后,我们可以在build.gradle文件的其他部分使用这些变量,例如在defaultConfig块设置versionCode和versionName属性。 3. 最后,在您的命令行终端运行以下命令,以确保您的项目可以正确读取config.yaml文件: ``` ./gradlew printAppName ``` 这将运行我们在build.gradle文件定义的printAppName任务,并输出应用程序名称(即我们在config.yaml文件定义的“My Awesome App”)。如果输出正确,那么您的项目已经可以正确读取config.yaml文件的内容,并将其用作变量进行配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值