6

我创建了一个编译 Android 项目的 gradle.build。它正在生成正确的 APK,作为后期构建步骤,我想将它们复制到另一个名称更有意义的文件夹中。

我写了这个任务来实现这一点:

task copyBundle(type: Copy) {
    def versionCode = android.defaultConfig.versionCode
    def buildDate = new Date().format("yyyy-MM-dd'T'HH-mm")

    def outputFile = 'HexPath-android-release-' + buildDate + '-' + versionCode + '.apk'

    println "Copying file to " + outputFile

    from('HexPath-android/build/apk/')
    into('output/android/')
    include('HexPath-android-release.apk')
    rename ('HexPath-android-release.apk', outputFile)
}

我遇到的问题是它跳过了这个任务,说“跳过任务':HexPath-android:copyBundle',因为它没有源文件。

关于我做错了什么的任何想法?

from 文件夹是正确的并且有几个 .apks。包含文件名是正确的。运行脚本时输出文件夹不存在。重命名是一个有效的文件名。

4

1 回答 1

0

您说该文件夹有多个 APK 文件,但在这里您只包含一个可能的文件,该文件必须准确命名为“HexPath-android-release.apk”。你那里有这个文件吗?

如果您希望每次都复制这个文件,那么我建议将结尾重写为如下内容:

from('HexPath-android/build/apk/HexPath-android-release.apk') {
    rename { outpuFile }
}
into('output/android/')

但是,如果您想要复制多个文件,请修改您的“包含”段以包含一些通配符,并可能创建一个闭包来创建它们的输出名称。希望这可以帮助。

另外,HexPath-android 不是项目本身。路径不应该从'build ...'开始吗?

于 2013-10-07T10:19:36.297 回答