Невозможно изменить тег манифеста с пользовательской задачей Gradle - PullRequest
0 голосов
/ 12 сентября 2018
class ReleaseTask extends DefaultTask {
 @TaskAction
 def releaseTask() {
    def android = project.extensions.android
    android.applicationVariants.all { variant ->
        def mergedFlavor = variant.getMergedFlavor()
        mergedFlavor.manifestPlaceholders = [UMENG_APPKEY: '', UMENG_MESSAGE_SECRET: '']

        variant.buildConfigField("boolean", "enableChangeEnvDialog", "false")
    }
  }
}

project.tasks.create("releaseTask", ReleaseTask)

приведенный выше код является моей пользовательской задачей gradle.

buildTypes {

    release {
        signingConfig signingConfigs.release
        zipAlignEnabled true
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        manifestPlaceholders = [UMENG_APPKEY:'',UMENG_MESSAGE_SECRET:'']
    }
}

этот код является моей конфигурацией блока buildType.

Теперь моя проблема заключается в том, что при сборке моего релизного apk яиспользовал

./gradlew clean releaseTask assembleRelease 

но в релизе apk я не получил placeHolder в задаче, а ключи в блоке buildType / release.но код

variant.buildConfigField("boolean", "enableChangeEnvDialog", "false")

был выполнен.

Я хочу знать, почему и как закодировать задачу, чтобы она была правильной.все будет полезно.спасибо

...