尝试导出Android应用程序的已签名包时出错“setTestClassesDir(File)方法已被弃用

时间:2017-12-23 19:01:16

标签: android gradle sdk processing

我是编程的初学者,我刚刚完成了使用Processing制作的Android简单游戏。但是,当我尝试获取应用程序的APK(导出签名包)时,我收到以下错误:

由于以下错误,无法创建密钥库:

构建文件夹:C:\ Users \ User \ AppData \ Local \ Temp \ android5125294986448583924sketch setTestClassesDir(File)方法已弃用,计划在Gradle 5.0中删除。请改用setTestClassesDirs(FileCollection)方法。 getTestClassesDir()方法已弃用,计划在Gradle 5.0中删除。请改用getTestClassesDirs()方法。 不推荐使用ConfigurableReport.setDestination(Object)方法,并计划在Gradle 5.0中将其删除。请改用ConfigurableReport.setDestination(File)方法。

由于我是初学者,我完全不知道如何继续。

看到我为创建应用程序而浪费的所有努力真的很糟糕......

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:9)

依次查看每个警告:

The setTestClassesDir(File) method has been deprecated and is scheduled to be removed in Gradle 5.0. 

这告诉你正在弃用某些东西。下一行给出了一个提示原因。

Please use the setTestClassesDirs(FileCollection) method instead. 

请注意,该方法已更改名称​​和,方法参数已从“File”类型更改为“FileCollection”类型。该错误应列出导致问题的行号。

在这种情况下,只是方法名称已更改。

The getTestClassesDir() method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the getTestClassesDirs() method instead.

这只是需要改变的方法论证。

The ConfigurableReport.setDestination(Object) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the method ConfigurableReport.setDestination(File)

我在使用coverage时遇到过这个问题,请注意以下代码片段中html.destination采用原始字符串...

jacocoTestReport {
    group = "Reporting"
    reports {
        xml.enabled true
        html.enabled true
        csv.enabled false
        html.destination "${buildDir}/reports/coverage"
    }
}

删除警告我将其更改为“File”对象,如下所示:

jacocoTestReport {
    group = "Reporting"
    reports {
        xml.enabled true
        html.enabled true
        csv.enabled false
        html.destination file("${buildDir}/reports/coverage")
    }
}

答案 1 :(得分:0)

我看起来在 Gradle 7.x 中有一个新的语法。您应该使用 html.destination 而不是 html.outputLocation

应该是这样的:

html.outputLocation = layout.buildDirectory.dir('reports/coverage')