我正在使用gradle插件版本3.3.0,而我的gradle包装器正在使用distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
我在app/build.gradle
文件中使用以下代码:
applicationVariants.all { variant ->
variant.outputs.each { output ->
def apk = output.outputFile //happens here (line 26)
def newName
if (variant.buildType.name == "release") {
newName = "ediary.apk"
} else {
newName = "ediary-debug.apk"
}
output.outputFileName = new File(
"./build/",
output.outputFile.name)
if (output.zipAlign) {
output.outputFileName = new File(
"./build/",
newName.replace("-unaligned", ""))
}
}
}
该项目已建立,但我收到此警告:
警告:API
'variantOutput.getPackageApplication()'
已过时,已被'variant.getPackageApplicationProvider()'
取代。 它将在2019年底删除。 有关更多信息,请参见https://d.android.com/r/tools/task-configuration-avoidance。 原因:从以下位置致电:C:\ Users \ my name \ StudioProjects \ core \ app \ build.gradle:26
如何重写此代码以避免出现警告?
答案 0 :(得分:0)
here上也提到了类似的警告,作者已使用以下项目级别build.gradle
中的代码解决了该问题
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) {
kotlinOptions {
// Disabling until there's some workaround for the warning
// about AGP's builder.jar containing its own bundled Kotlin
// runtime library.
allWarningsAsErrors = false
}
}
您可以从here检查gradle文件以供参考。
警告是由于gradle插件3.3引起的,您可以将gradle插件降级为使用3.2.1,也可以使用上述代码使警告静音。这里有一个类似的问题variantOutput.getPackageApplication() is obsolete
答案 1 :(得分:0)
这已记录为android构建工具3.3.0中的更改。 (我不确定4.10及更高版本)我不是gradle专家或类似的人,但是,我很确定您在上面共享的代码不会引起此警告。它可能是您的依赖项之一,正在使用警告中提到的API(现已弃用)。唯一的解决方法是,如果您想继续使用android构建工具3.3.0,则暂时取消警告。
类似的情况也发生在黄油刀库中。检查一下,您可能会发现一些有用的信息 Butterknife Issue 1431
我个人对此警告保持沉默并继续前进。只需在gradle.properties中添加以下行
android.jetifier.blacklist = butterknife-compiler //replace with possible artifact name
答案 2 :(得分:0)
经过大量的研发,我找到了解决方法
我所做的是我从output.zipAlign
表格中删除了android.applicationVariants.all
文件,警告消失了