升级android studio至3.3.2出现WARNING: API 'variantOutput.getPackageApplication()' is obsolete
16lz
2021-12-04
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 2019.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
官方网站说明:
粗略翻译为:避免初始化和配置完成当前构建所不需要的任务,例如,如果您有多个构建变体,例如“发布”和“调试”构建变体,并且您正在构建应用程序的“调试”版本,则该插件可避免初始化和配置“发布”版本的任务你的应用。
例如以下是根据版本和时间配置自定义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//output.outputFile具体实现里应该调用了variantOutput.getPackageApplication() 看了一些博客暂时可以不用管。后续应该会有库升级兼容这个问题。也可以升级,避开会调用output if (outputFile != null && outputFile.name.endsWith('.apk')) { //这里修改apk文件名 outputFileName = fileName } } */ }}//获取编译时间static def releaseTime() { return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))}
转自https://www.cnblogs.com/blogs-of-lxl/p/10306145.html
更多相关文章
- Flutter实现android应用内版本更新功能
- Android获取本机信息(随时更新)
- Android(安卓)Spinner(级联 天气预报)
- Android(安卓)SDK下载和更新失败的解决方法
- 解决android sdk 无法更新
- Android(安卓)Q Beta 6 终极测试版发布!
- Android线程模型解析(包括UI的更新)
- android listview局部刷新和模拟应用下载
- Android源码分析之WindowManager.LayoutParams属性更新过程