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")
был выполнен.
Я хочу знать, почему и как закодировать задачу, чтобы она была правильной.все будет полезно.спасибо