升级Gradle 3.0重命名Apk并输出指定目录

背景是工程之前用的2.2.2版本,gradle-wrapper是gradle-2.14.1-all,这个版本的重命名apk和输出指定目录如下代码:

android.applicationVariants.all { variant ->

        variant.assemble.doLast {
            def targetDir = "$rootDir/bin"
            def fileNamePrefix = "${project.name}-${variant.baseName}"
            def targetFileNamePrefix = "${project.name}-${variant.baseName}-${project.android.defaultConfig.versionName}"
            targetFileNamePrefix = "soho_${project.android.defaultConfig.versionName}.${project.android.defaultConfig.versionCode}_android_${variant.baseName}"

            // gradle 2.2.2 适用
            project.copy {
                from variant.outputs.outputFile
                into "${targetDir}"
                rename("${fileNamePrefix}.apk", "${targetFileNamePrefix}.apk")
                project.logger.error("Copy ${fileNamePrefix}.apk to ${targetDir}/${targetFileNamePrefix}.apk")
            }


            project.copy {
                // copy mapping.txt
                from "${project.buildDir}/outputs/mapping/${variant.dirName}/mapping.txt"
                into "${targetDir}"
                rename("mapping.txt", "${targetFileNamePrefix}-mapping.txt")

                project.logger.error("Copy mapping.txt to ${targetDir}/${targetFileNamePrefix}-mapping.txt")
            }
}

            project.copy {
                from "${project.buildDir}/intermediates/symbols/${variant.dirName}/R.txt"
                into "${targetDir}"
                rename("R.txt", "${targetFileNamePrefix}-R.txt")

                project.logger.error("Copy R.txt to ${targetDir}/${targetFileNamePrefix}-R.txt")
            }
        }*/
    }

不升级一切都安好,升级gradle3.0之后就报错了:

在这里插入图片描述

问题很明确,就是不兼容了呗。

纠结了一会,gradle版本肯定要升级的,就做下适配:

android.applicationVariants.all { variant ->

        variant.outputs.all { output ->
            def outputFile = output.outputFile

            def targetDir = "$rootDir/bin"

            def targetFileNamePrefix

            def date = new Date()

            def formattedData = date.format('yyyyMMddHHmm')

            def fileNamePrefix = "${project.name}-${variant.baseName}"
            project.logger.error("fileNamePrefix: ${fileNamePrefix}")


            if (outputFile != null && outputFile.name.endsWith('.apk')) {
                project.logger.error("outputFile: ${outputFile}")

                if (variant.buildType.name.equals("release")) {
                    targetFileNamePrefix = "soho_${project.android.defaultConfig.versionName}.${project.android.defaultConfig.versionCode}_android_release_${formattedData}"
                } else if (variant.buildType.name.equals("debug")) {
                    targetFileNamePrefix = "soho_${project.android.defaultConfig.versionName}.${project.android.defaultConfig.versionCode}_android_debug_${formattedData}"
                }
                project.logger.error("outputFileName: ${targetFileNamePrefix}")

                project.copy {
                    from output.outputFile
                    into "${targetDir}"
                    rename("${fileNamePrefix}.apk", "${targetFileNamePrefix}.apk")
                    project.logger.error("Copy ${fileNamePrefix}.apk to ${targetDir}/${targetFileNamePrefix}.apk")
                }

                project.copy {
                    // copy mapping.txt
                    from "${project.buildDir}/outputs/mapping/${variant.dirName}/mapping.txt"
                    into "${targetDir}"
                    rename("mapping.txt", "${targetFileNamePrefix}-mapping.txt")

                    project.logger.error("Copy mapping.txt to ${targetDir}/${targetFileNamePrefix}-mapping.txt")
                }

                project.copy {
                    from "${project.buildDir}/intermediates/symbols/${variant.dirName}/R.txt"
                    into "${targetDir}"
                    rename("R.txt", "${targetFileNamePrefix}-R.txt")

                    project.logger.error("Copy R.txt to ${targetDir}/${targetFileNamePrefix}-R.txt")
                }
            }
        }
    }

ok,适配完毕,完美。

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: 要下载Gradle 3.0,您可以按照以下步骤进行操作: 1. 首先,访问Gradle官方网站并导航至他们的下载页面。 2. 在下载页面,您将看到Gradle的不同版本可供选择。滚动页面直到找到Gradle 3.0的下载链接。 3. 点击Gradle 3.0的下载链接,您将被重定向到一个新页面或启动下载。 4. 在新页面或下载开始后,您将可以选择下载Gradle 3.0的不同版本(例如,全部包含二进制文件和源码),以满足您的需求。 5. 选择您想要下载的版本,并单击下载按钮。开始下载Gradle 3.0的压缩文件。 6. 下载过程可能需要一些时间,具体取决于您的网络连接速度。请耐心等待直到下载完成。 7. 下载完成后,您可以解压缩下载的文件并将其保存在您喜欢的位置。确保您选择的位置易于访问,并且您可以轻松地找到Gradle的安装文件。 8. 安装Gradle 3.0之前,确保您的计算机满足Gradle的系统要求。例如,您可能需要Java开发工具包(JDK)的安装。 9. 根据您的操作系统和个人偏好,按照Gradle的官方文档中提供的指南进行安装。 10. 验证安装是否成功。在命令行中输入“gradle -v”(在Windows系统中通常是在命令提示符或PowerShell中输入,而在Mac或Linux系统中通常是在终端中输入)。如果成功安装,您将看到Gradle 3.0的版本信息。 希望以上的回答对您有所帮助!Gradle是一个强大的构建工具,帮助您管理和构建项目。祝您在使用Gradle 3.0时取得成功! ### 回答2: 在下载 Gradle 3.0 之前,我们首先需要了解 Gradle 是什么。Gradle 是一款基于 Groovy 语言的构建自动化工具,它具有强大的依赖管理和任务执行的能力。通过构建脚本,我们可以定义项目的结构、依赖关系和编译、测试、部署等任务。 要下载 Gradle 3.0 ,首先需要打开 Gradle 官方网站 https://gradle.org/releases/ ,在该页面上可以找到 Gradle 的各个版本及其下载链接。 找到 Gradle 3.0 的版本,在该版本下选择对应的操作系统,点击下载链接即可开始下载。根据你的操作系统,可能有不同的下载链接可选择。例如,对于 Windows 操作系统,可以选择 zip 归档文件或者二进制安装文件进行下载。对于 Mac OS 或 Linux 操作系统,可以选择 bin 归档文件进行下载。 下载完成后,将下载的文件解压到你想安装 Gradle目录。解压后的文件夹结构包含了 Gradle 的各个文件和目录。 接下来,我们需要配置环境变量。在 Windows 操作系统中,打开控制面板的系统设置,并选择“高级系统设置”。在系统属性窗口中,点击“环境变量”按钮,找到“系统变量”部分,选择“Path”变量,点击“编辑”按钮,在变量值的末尾添加 Gradle 安装目录的路径,保存并关闭窗口。 在 Mac OS 或 Linux 操作系统中,在终端中打开 ~/.bash_profile 或 ~/.bashrc 文件,添加以下内容: export PATH=$PATH:/path/to/gradle/bin 保存文件并退出编辑器,然后执行 source ~/.bash_profile 或 source ~/.bashrc 命令,使环境变量生效。 最后,通过在终端中输入 gradle -v 命令,我们可以验证 Gradle 是否正确安装以及版本号是否为 3.0。 通过以上步骤,你应该已经成功安装并下载了 Gradle 3.0 版本。现在你可以开始使用 Gradle 来构建你的项目了。 ### 回答3: Gradle 3.0 是一款流行的构建工具,用于管理和构建项目。在下载 Gradle 3.0 之前,我们首先需要确保我们的计算机上已安装 Java 开发工具包(JDK),因为 Gradle 是使用 Java 编写的。接下来,我们可以按照以下步骤下载 Gradle 3.0: 1. 打开 Gradle 官方网站(https://gradle.org/),点击菜单栏上的 "下载" 选项; 2. 在下载页面上,可以看到最新版本的 Gradle。找到 Gradle 3.0 版本并点击下载链接; 3. 下载完成后,将压缩包解压到我们想要安装 Gradle目录中。可以选择将其解压到默认目录,例如 C:\Gradle,或根据个人喜好来选择目标文件夹; 4. 配置环境变量。打开命令提示符或终端窗口,并输入命令:setx PATH "C:\Gradle\bin;%PATH%"(假设 Gradle 解压目录为 C:\Gradle)。这会将 Gradle 的 bin 目录添加到系统的 PATH 环境变量中,以便我们可以在任何位置使用 Gradle 命令; 5. 测试 Gradle 安装是否成功。在命令提示符或终端窗口中,输入命令:gradle -v。如果安装成功,将显示 Gradle 的版本信息,包括 Gradle 3.0 版本号。 下载和安装 Gradle 3.0 后,我们就可以开始使用它来管理项目的构建过程。可以通过编写配置文件(build.gradle)来定义项目的构建需求,并使用 Gradle 提供的丰富的插件和任务来管理依赖、编译、测试和打包等构建操作。 总而言之,下载 Gradle 3.0 非常简单,只需跟随官方网站的步骤,并在编辑器或终端中配置相关环境变量即可。通过使用 Gradle,我们可以更高效地管理和构建项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小巫技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值