Android studio Android build.gradle-如何覆盖现有apk

Android studio Android build.gradle-如何覆盖现有apk,android-studio,gradle,build.gradle,Android Studio,Gradle,Build.gradle,用于输出APK的生成文件默认配置如下所示: defaultConfig { applicationId "org.myapp.cool" minSdkVersion 16 targetSdkVersion 21 versionCode project.ext.versionSum def time = Integer.parseInt(new Date().format('MMddHHmm')) applicationVariants.all {

用于输出APK的生成文件默认配置如下所示:

defaultConfig {
    applicationId "org.myapp.cool"
    minSdkVersion 16
    targetSdkVersion 21
    versionCode project.ext.versionSum
    def time =  Integer.parseInt(new Date().format('MMddHHmm'))
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def file = output.outputFile
            def fileName = file.name.replaceAll("^.*(?=(\\.apk))", "myandroidapp-" + time)
            output.outputFile = new File(file.parent, fileName)
        }
    }
}
我的问题是,我使用时间戳(一个要求)作为文件名的一部分。现在,如果我第一次运行应用程序,它将正常运行,并且创建apk文件。但是如果我在一分钟内再次运行构建,它会说找不到输出目录,我认为这是因为它没有过度写入同一分钟已经存在的目录

如果我等几分钟,那么一切都很好,因此在同一分钟内运行构建时会出现文件名问题。如何让groovy重写文件

更新:文件似乎被覆盖了,但我一直收到以下错误:

本地路径不存在
然后它说它不会建造apk,因为它没有改变。我搜索了Stackoverflow,但我不确定解决方案是否能帮助我解决这个问题<代码>我使用的是gradle发行版2.4,我的类路径是:classpath'com.android.tools.build:gradle:1.2.3'

文件名中是否包含秒(和毫秒)?然而,我怀疑这是个问题。Gradle在每次构建时都会覆盖现有的APK。嗯,好的,谢谢,然后我会更新这个问题。我想你是对的,文件确实被覆盖了。这样想吧。如果每个构建都由时间戳唯一标识,并且您每分钟执行一次build>,那么您需要具有秒/毫秒分辨率。如果有人在一分钟内进行了第二次构建,您真的想简单地覆盖该构建吗?我猜不是。在文件名中包括秒(和毫秒)吗?然而,我怀疑这是个问题。Gradle在每次构建时都会覆盖现有的APK。嗯,好的,谢谢,然后我会更新这个问题。我想你是对的,文件确实被覆盖了。这样想吧。如果每个构建都由时间戳唯一标识,并且您每分钟执行一次build>,那么您需要具有秒/毫秒分辨率。如果有人在一分钟内进行了第二次构建,您真的想简单地覆盖该构建吗?我猜不是。