自从Android Gradle插件0.13.0中出现问题以来,这已经出现了,但对于我的生活,我无法理解为什么有时会记录此警告。
考虑此块,根据变体类型重命名APK:
applicationVariants.all { variant ->
variant.outputs.each { output ->
def oldFile = output.outputFile
if (oldFile != null && oldFile.name.endsWith('.apk')) {
def newFile = "Fancy conditionally-formatted file name here"
print "\nBefore"
output.outputFile = new File(oldFile.parent, newFile)
print "\nAfter"
}
}
}
查看gradle日志,我看到了:
Before
WARNING [Project: <myproject>] variant.getOutputFile() is deprecated. Call it on one of variant.getOutputs() instead.
WARNING [Project: <myproject>] variant.getProcessResources() is deprecated. Call it on one of variant.getOutputs() instead.
After
似乎表示调用行output.outputFile = new File(oldFile.parent, newFile)
会抛出此警告。事实上,Google在this page底部的示例中特别使用了这种风格。如果我们根本无法触及output
,我们如何设置其outputFile
?
除此之外,我不知道getProcessResources()
是如何参与的。
有什么想法吗?
答案 0 :(得分:2)
将variant.outputFile
更改为variant.outputs[x].outputFile
答案 1 :(得分:1)
而不是
def newFile = "Fancy conditionally-formatted file name here"
output.outputFile = new File(oldFile.parent, newFile)
请执行以下操作
def apk = output.outputFile
def newName = getNewName() // any fancy formatted file name
apk.renameTo(new File(apk.parentFile, newName))
希望它有所帮助。
答案 2 :(得分:0)
事实证明,Gradle插件仍然在引擎盖下使用已弃用的调用。从Android Gradle Plugin 0.14.4开始,这些警告不再出现。