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 if (outputFile != null && outputFile.name.endsWith('.apk')) { //這里修改apk文件名 outputFileName = fileName } } */ } }
//獲取編譯時間 static def releaseTime() { return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC")) }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM