以编程方式获取manifestPlaceholders

时间:2019-10-18 13:23:27

标签: android gradle android-gradle-plugin

我想在我的代码中读取manifestPlaceholders的值。
我找到了一些代码,但它们始终返回null。

我的胜利是:

android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
    applicationId "com.some.test"
    minSdkVersion 19
    targetSdkVersion 29
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        manifestPlaceholders = [app_id: "xxx123"]
    }
    debug {
        manifestPlaceholders = [app_id: "xxx123"]
    }
}
}

我在Onesignal SDK中找到了这段代码,可以从gradle中读取值,但是它不起作用:

    try {
        ApplicationInfo ai = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
        Bundle bundle = ai.metaData;
        appId = bundle.getString("app_id");
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }

使用此代码,捆绑软件应包含manifestPlaceholders值,但始终为null。

出什么问题了?

0 个答案:

没有答案