我刚刚升级了gradle,并且收到有关过时呼叫的警告。怎么修?

时间:2019-01-15 01:34:23

标签: android android-studio gradle android-build

我正在使用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

如何重写此代码以避免出现警告?

3 个答案:

答案 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文件,警告消失了