一. 打开项目选择如图示1 (build.gradle 项目位置)
二. 1. build.gradle 文件添加内容如下。gradle是【com.android.tools.build:gradle:3.0.0 以下版本】
android{ defaultConfig {...} 自动追加版本号和版本名称 android.applicationVariants.all { variant->variant.outputs.each { output-> output.outputFile = new File(output.outputFile.parent,"app_device_v"+defaultConfig.versionName+"_"+new Date().format("yyyy-MM-dd")+"_"+buildType.name+".apk") } } }
output.outputFile.parent 可以指定输出到指定文件夹
2. build.gradle 文件添加内容如下。 gradle是【com.android.tools.build:gradle:3.0.0及其以上版本】
android{ defaultConfig {...} //release版本输出包名自动追加版本号和版本名称 applicationVariants.all { variant -> variant.outputs.all { //只处理生产版本 if (buildType.name == 'release') { def createTime = new Date().format("YYYY-MM-dd", TimeZone.getTimeZone("GMT+08:00")) // app包名称 outputFileName = "app_v" + defaultConfig.versionName + "_" + createTime + "_" + buildType.name + ".apk" ////指定release输出到指定文件夹 variant.getPackageApplication().outputDirectory = new File(config.appReleaseDir + "/${createTime}") } } } }
三. 打包查看结果:图示3(直接点击assembleRelease即可)
补充知识:Android编译gradle 动态修改版本号
在构建代码的时候不想每次都修改版本号,需能够增加一个功能在特定的条件下动态的修改版本号
在manifest里面加入占位符号
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="${versioncode}" android:versionName="${versionname}">
修改build.gradle
import com.google.gson.Gson class Version { int versionCode String versionName } def versionJsonFile = file('./version.json')//这个文件最好放一个所有项目人员都能够访问的地方 def versionJsonObject = new Gson().fromJson(versionJsonFile.text, Version.class) android.applicationVariants.all { variant -> println("variants name : " + variant.name) //只有满足特定条件的情况下才会版本自增一,这个可以看看各个项目的特定配置 if (variant.name.toLowerCase().contains("ceshirelease") ) { println("variants name : versionCode " + versionJsonObject.versionCode + "versionname: " + versionJsonObject.versionName) versionJsonObject.versionCode = versionJsonObject.versionCode + 1 int lastIndexPoint = versionJsonObject.versionName.lastIndexOf(".") String newStr = versionJsonObject.versionName.substring(0, lastIndexPoint) println("newStr" + newStr) versionJsonObject.versionName = newStr + "." + versionJsonObject.versionCode println("versonJsonStr.versionName " + versionJsonObject.versionName) } //这句是核心,可以调整版本号和版本明,修改了这个会影响到BuildConfig.class里面的属性 variant.mergedFlavor.versionCode = versionJsonObject.versionCode variant.mergedFlavor.versionName = versionJsonObject.versionName //如果没有加下面这句,当应用安装后会出现应用信息没有版本号的问题,这个必须有 variant.mergedFlavor.manifestPlaceholders.put("versioncode", versionJsonObject.versionCode) variant.mergedFlavor.manifestPlaceholders.put("versionname", versionJsonObject.versionName) } //为了记住最新的版本号,是需要进行文件的回写的,什么时候回写会好一点 //个人认为只有当打包apk的动作执行成功后 回写文件记录的版本号最优 afterEvaluate { project -> gradle.taskGraph.afterTask { task, taskState -> //这里如果assembleceshirelease 就具体的打包的变种项目,各个应用肯定不一样,需要调整下 if (task.name.toLowerCase().contains("assembleceshirelease") && taskState.getFailure() == null) { println("try assemble ceshi release" ) //回写文件操作 versionJsonFile.withPrintWriter { out -> out.println(new Gson().toJson(versionJsonObject)) } } } }
给apk重新命名也是同样的道理
variant.getOutputs().all { File file = it.outputFile; println(" file property file.canRead() " + file.canRead() + " file.canWrite " + file.canWrite()) String pathString = file.getPath(); println(" path String : " + pathString + " File.pathSeparator: " + File.separator) //指定最终输出的文件的目录和名字 pathString = file.getParent() + File.separator + "test.apk"; println(" path pathString : " + pathString) file.renameTo(pathString) }
以上这篇android studio 打包自动生成版本号与日期,apk输入路径详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
问题内容: 我在SVN下有一个python项目,我想在运行时显示版本号。有什么方法可以做到这一点(例如在提交时自动运行一个简短的脚本,该脚本可能会更新版本文件,或者在Python中查询SVN存储库?) 问题答案: 我不确定Python的具体细节,但是如果将字符串$ Revision $放入文件中的某个位置,并且您在SVN配置中具有enable-auto-props = true,它将被重写为类似$
当我在我连接的设备上运行应用程序时,选择设备后显示意外错误,本地路径不存在。
本文向大家介绍怎么修改vue打包后生成文件路径?相关面试题,主要包含被问及怎么修改vue打包后生成文件路径?时的应答技巧和注意事项,需要的朋友参考一下 webpack:output.path vue-cli3: outputDir
是否有一种方法来自动完成一个日期在YYYY-MM-DD格式,其中输入字段将只需要MM-DD。 除非月和日是过去的,否则该年将是当前的一年。 示例:
本文向大家介绍Mysql5.7.18版本(二进制包安装)自定义安装路径教程详解,包括了Mysql5.7.18版本(二进制包安装)自定义安装路径教程详解的使用技巧和注意事项,需要的朋友参考一下 安装路径:/application/mysql-5.7.18 1.前期准备 mysql依赖 创建用户mysql,以该用户的身份执行mysql 下载mysql二进制包并解压 切换到/application目录,
本文向大家介绍详解前端自动化工具gulp自动添加版本号,包括了详解前端自动化工具gulp自动添加版本号的使用技巧和注意事项,需要的朋友参考一下 之前,我介绍了学习安装并配置前端自动化工具Gulp,觉得gulp确实比grunt的配置简单很多,于是我决定再深入学习一下gulp,就去网上查了资料,发现gulp还可以自动添加版本号,这个功能就为我平时在更新css或js时老是在客户端存在缓存导致更新后的效果