【问题标题】:Error "setTestClassesDir(File) method has been deprecated" when trying to export signed package for Android app尝试为 Android 应用导出签名包时出现错误“setTestClassesDir(File) 方法已被弃用”
【发布时间】:2017-12-23 19:01:16
【问题描述】:

我是一名编程初学者,我刚刚完成了一个使用 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) 方法。

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

看到我在创建应用程序上付出的所有努力都白费了,真是太糟糕了......

非常感谢任何帮助!

【问题讨论】:

  • 您应该做的第一件事是尝试谷歌搜索错误消息。我在谷歌上搜索The setTestClassesDir(File) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the setTestClassesDirs(FileCollection) method instead. 得到了大量结果。这些链接告诉你做什么?
  • 他们中的大多数,比如这个github.com/gradle/gradle/issues/2216 讨论了我的草图中没有的代码,甚至可能不在java中(到目前为止只使用过处理IDE),我完全不知道在哪里我可以使用此代码找到并编辑文件....此外,他们无法正确解释在我的 SDK 中在哪里可以找到 gradle 以及什么是 gradle,以便我可以开始着手解决问题...

标签: android gradle sdk processing


【解决方案1】:

依次查看每个警告:

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)

我在使用覆盖时遇到过这个问题,请注意以下 sn-p html.destination 采用原始字符串...

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

要删除警告,我将其更改为采用“文件”对象,如下所示:

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

【讨论】:

  • 我只是以前不知道jacocoTestReport,还是只有我不使用它?
【解决方案2】:

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

应该是这样的:

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

【讨论】:

    猜你喜欢
    • 2019-07-05
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多