将“ Android Gradle插件”升级到3.4.0之后,我在/app/build.gradle中收到警告消息
警告:API'variantOutput.getPackageApplication()'已过时,并已替换为'variant.getPackageApplicationProvider()'。 它将在2019年底删除。
有关更多信息,请参见https://d.android.com/r/tools/task-configuration-avoidance。
要确定调用variantOutput.getPackageApplication()的内容,请在命令行上使用-Pandroid.debug.obsoleteApi = true显示更多信息。
我已按照建议在“ gradle.properties”中尝试了“ android.debug.obsoleteApi = true”,然后得到了此消息。
原因:调用方:[android项目路径] /app/build.gradle:31
包含第31行的代码是下面的代码。
android {
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
applicationVariants.all { variant ->
variant.outputs.each { output ->
project.ext { appName = 'my_app' }
def newName = output.outputFile.name
newName = newName.replace("app-", "$project.ext.appName-")
newName = newName.replace("-release", "-" + defaultConfig.versionName)
def relativeRootDir = output.packageApplication.outputDirectory.toPath().relativize(rootDir.toPath()).toFile()
output.outputFileName = new File("$relativeRootDir/", newName)
}
}
}
}
}
第31行是
def newName = output.outputFile.name
这部分是否使用API'variantOutput.getPackageApplication()'?我该怎么办才能解决此警告?
答案 0 :(得分:0)
在我将'app / build.gradle'更改为不使用第31行之后,警告消息消失了。
applicationVariants.all { variant ->
variant.outputs.all {
project.ext { appName = 'my_app' }
def newName = outputFileName
newName = newName.replace("app-", "$project.ext.appName-")
newName = newName.replace("-release", "-" + defaultConfig.versionName)
outputFileName = "${variant.name}" + newName
}
}