Android : Android Studio 更新至gradle 4.10.1后Variants API变化

同步警告:

WARNING: API 'variantOutput.getPackageApplication()' is obsolete and has been replaced with 'variant.getPackageApplicationProvider()'.
It will be removed at the end of .
For more information, see https://d.android.com/r/tools/task-configuration-avoidance.
To determine what is calling variantOutput.getPackageApplication(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace.
Affected Modules: app

官方网站说明:

Android : Android Studio 更新至gradle 4.10.1后Variants API变化

粗略翻译为:避免初始化和配置完成当前构建所不需要的任务,例如,如果您有多个构建变体,例如“发布”和“调试”构建变体,并且您正在构建应用程序的“调试”版本,则该插件可避免初始化和配置“发布”版本的任务你的应用。

例如以下是根据版本和时间配置自定义apk名称方法,更新后需要将 defaultConfig.xxx  修改为 variant.xxx  :

android {
....
//自定义apk名称含版本号信息
android.applicationVariants.all { variant ->

     // 更新至Android Studio 3.3 gradle 4.10.1
variant.outputs.all {
outputFileName = "Nanosic_OTA_${variant.versionCode}-${variant.versionName}-${releaseTime()}.apk"
} //更新前
/*
variant.outputs.all { output ->
def fileName = "Nanosic_OTA_${defaultConfig.versionCode}-${defaultConfig.versionName}-${releaseTime()}.apk"
//def fileName = outputFile.name.replace("app", "${rootProject.ext.appName}-${releaseTime()}-${defaultConfig.versionCode}-${defaultConfig.versionName}")
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
//这里修改apk文件名
outputFileName = fileName
}
}
*/
}
}
//获取编译时间
static def releaseTime() {
return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}
上一篇:HTML-CSS font-family:中文字体的英文名称


下一篇:Jsoup解析获取品花社图片