Android Gradle插件更新至v2.3.0中断复制任务

Android Gradle插件更新至v2.3.0中断复制任务,gradle,android-gradle-plugin,Gradle,Android Gradle Plugin,我的Android build.gradle文件中有以下任务,它为我复制了构建的APK文件: /** * Copies the final release APK into the project root folder. */ task copyRelease(type: Copy) { // define output files exactly to work around a file locking issue outputs.files.setFrom(file(

我的Android build.gradle文件中有以下任务,它为我复制了构建的APK文件:

/**
 * Copies the final release APK into the project root folder.
 */
task copyRelease(type: Copy) {
    // define output files exactly to work around a file locking issue
    outputs.files.setFrom(file("../app-release.apk"))

    from "build/outputs/apk/app-release.apk"
    into ".."
}
这已经运行了很长时间,今天在执行Android Studio建议的更新时出现问题:

  • Android Gradle插件v2.3.0(来自v2.2.3)
  • Gradle v3.3(来自v2.14.1)
现在运行Grade build会在
outputs.files.setfrom(…)
行上出现以下错误:

总之,似乎
TaskOutputUnionFileCollection.setFrom()
不再接受
File
参数

但我不知道如何将这段代码迁移到新版本,而且a也没有帮到我



我查看了以及,没有找到直接的参考。

如果不实施变通方法,我无法找到上述代码的直接准确翻译。问题在于使用项目的根文件夹作为复制命令的目标

解决方法是创建一个单独的文件夹
。\release
,然后以下代码可以正常工作:

/**
 * Copies the final release APK into the project root folder.
 */
task copyRelease(type: Copy) {
    from "build/outputs/apk"
    into "../release"
    include "app-release.apk"
}

如果不实施变通方法,我无法找到上述代码的直接准确翻译。问题在于使用项目的根文件夹作为复制命令的目标

解决方法是创建一个单独的文件夹
。\release
,然后以下代码可以正常工作:

/**
 * Copies the final release APK into the project root folder.
 */
task copyRelease(type: Copy) {
    from "build/outputs/apk"
    into "../release"
    include "app-release.apk"
}

强制断开线的“文件锁定问题”与此类似。该项目的根文件夹包含
.gradle
文件夹。我也遇到过这个问题,在任何文档中都找不到它。你找到解决方法了吗?@user1088166我已经添加了我最终使用的解决方法。做我需要的,但如果你找到一个更好的解决方案,请随时发布。迫使中断线的“文件锁定问题”与此类似。该项目的根文件夹包含
.gradle
文件夹。我也遇到过这个问题,在任何文档中都找不到它。你找到解决方法了吗?@user1088166我已经添加了我最终使用的解决方法。做我需要的,但如果你找到一个更好的解决方案,请随时张贴。