当前位置: 首页 > 知识库问答 >
问题:

Gradle脚本重命名文件问题

于高雅
2023-03-14

我使用下面的代码生成一个。apk文件,它工作得很好。但是,为了能够调试,我需要在“applicationvariants.all”周围注释代码,另一个明智的Android Studio说没有找到该文件。

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def apk = output.outputFile;
                    def newName = "app-release-" + getDate() + ".apk";
                    output.outputFile = new File(apk.parentFile, newName);
                }
            }

        }
    }

我如何才能使它为generate.apk文件工作,并在Android Studio上调试?

更新

我发现发生了什么,实际上当我在文件名中使用日期和时间时,生成的文件中的时间与Android Studio试图安装的时间不同。

我的函数getDate()返回以下内容:

def getDate() {
    def date = new Date()
    def formattedDate = date.format('yyyyMMddHHmm')
    return formattedDate
}

创建的文件是app-release-201507110957.apk。然而,在Android Studio控制台中,错误是:

Uploading file
    local path: /Volumes/Macintosh HD/AndroidstudioProjects/App/app/build/outputs/apk/app-release-201507110956.apk
    remote path: /data/local/tmp/com.domain.app
Local path doesn't exist.

生成文件的文件名比Android Studio试图安装的文件名提前1分钟。你知道我该怎么解决这个问题吗?我想在文件名中有小时和分钟,因为我可能会为QA团队每天生成一个以上的版本。

共有1个答案

冯元徽
2023-03-14

目前,重命名是发布构建的一部分。只需将重命名作为一般动作,如下所示:

android {

  ...

  buildTypes {
    release {
      minifyEnabled false
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    debug {
      minifyEnabled false
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }

  applicationVariants.all { variant ->
      variant.outputs.each { output ->
      def apk = output.outputFile;
      def newName = "app-release-" + getDate() + ".apk";
      output.outputFile = new File(apk.parentFile, newName);
    }
  }
}
 类似资料:
  • 我在Webphere应用服务器中托管了网络应用程序。它使用log4j版本1.2.15进行日志记录,下面是我的log4j配置。日志文件不会在达到阈值时立即旋转,尽管log4j调试器说重命名为新文件。但是相同的配置在另一个环境中工作正常。请注意,JVM的单个实例只在我的两个服务器环境中运行。所以不可能通过不同的JVM锁定相同的日志文件。 log4j。属性 system.out日志

  • 文件重命名 文件重命名 源码/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * *//* * 程序清单:更改名称 * * 程序会创建一个操作文件的函数并导出到msh命令列表 * 在

  • 我在下面找到了这个脚本,但它对我不起作用,因为我的文件有空间,而且我在一个zip文件中有多个文件。 请救命!谢谢你

  • 问题内容: 我想批量重命名目录中的多个文件,以便从文件名中删除前面的数字和连字符。 如何使用linux命令执行此操作? 问题答案: 这应该使它: 它从块的开头(即数字)开始多次,然后连字符并将其从文件名中删除。 如果不在您的计算机中,则可以使用循环和: 测试 要么:

  • 我一直在使用PDF文件中的命名目标来打开文件中特定位置的PDF文件。负责生成PDF文档的团队使用工具从图书标记自动生成命名目的地,因此命名目的地的名称往往类似于*9\u Glossary*或*Additional\u Information*。我们被要求用多种语言制作相同的文档。我预计我们将收到多种外语的PDF文档,在相同的位置带有书签,但图书标记的名称当然将使用这些其他语言,自动生成的命名目的地

  • 问题内容: 如果我有以下内容的文本文件 是否可以使用Linux命令或脚本来获得以下结果? 问题答案: 将其发送(将相邻的项目放在一起)然后进行计数,即: 并以排序顺序(按频率)获取该列表,您可以