久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

android studio 打包自動(dòng)生成版本號(hào)與日期,apk輸入路徑詳解

瀏覽:131日期:2022-09-25 15:45:00

一. 打開(kāi)項(xiàng)目選擇如圖示1 (build.gradle 項(xiàng)目位置)

android studio 打包自動(dòng)生成版本號(hào)與日期,apk輸入路徑詳解

二. 1. build.gradle 文件添加內(nèi)容如下。gradle是【com.android.tools.build:gradle:3.0.0 以下版本】

android{ defaultConfig {...} 自動(dòng)追加版本號(hào)和版本名稱 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 文件添加內(nèi)容如下。 gradle是【com.android.tools.build:gradle:3.0.0及其以上版本】

android{ defaultConfig {...} //release版本輸出包名自動(dòng)追加版本號(hào)和版本名稱 applicationVariants.all { variant -> variant.outputs.all {//只處理生產(chǎn)版本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}')} } }}

三. 打包查看結(jié)果:圖示3(直接點(diǎn)擊assembleRelease即可)

android studio 打包自動(dòng)生成版本號(hào)與日期,apk輸入路徑詳解

補(bǔ)充知識(shí):Android編譯gradle 動(dòng)態(tài)修改版本號(hào)

在構(gòu)建代碼的時(shí)候不想每次都修改版本號(hào),需能夠增加一個(gè)功能在特定的條件下動(dòng)態(tài)的修改版本號(hào)

在manifest里面加入占位符號(hào)

<manifest xmlns:android='http://schemas.android.com/apk/res/android' android:versionCode='${versioncode}' android:versionName='${versionname}'>

修改build.gradle

import com.google.gson.Gsonclass Version { int versionCode String versionName}def versionJsonFile = file(’./version.json’)//這個(gè)文件最好放一個(gè)所有項(xiàng)目人員都能夠訪問(wèn)的地方 def versionJsonObject = new Gson().fromJson(versionJsonFile.text, Version.class) android.applicationVariants.all { variant -> println('variants name : ' + variant.name) //只有滿足特定條件的情況下才會(huì)版本自增一,這個(gè)可以看看各個(gè)項(xiàng)目的特定配置 if (variant.name.toLowerCase().contains('ceshirelease') ) {println('variants name : versionCode ' + versionJsonObject.versionCode + 'versionname: ' + versionJsonObject.versionName)versionJsonObject.versionCode = versionJsonObject.versionCode + 1int lastIndexPoint = versionJsonObject.versionName.lastIndexOf('.')String newStr = versionJsonObject.versionName.substring(0, lastIndexPoint)println('newStr' + newStr)versionJsonObject.versionName = newStr + '.' + versionJsonObject.versionCodeprintln('versonJsonStr.versionName ' + versionJsonObject.versionName) } //這句是核心,可以調(diào)整版本號(hào)和版本明,修改了這個(gè)會(huì)影響到BuildConfig.class里面的屬性 variant.mergedFlavor.versionCode = versionJsonObject.versionCode variant.mergedFlavor.versionName = versionJsonObject.versionName //如果沒(méi)有加下面這句,當(dāng)應(yīng)用安裝后會(huì)出現(xiàn)應(yīng)用信息沒(méi)有版本號(hào)的問(wèn)題,這個(gè)必須有 variant.mergedFlavor.manifestPlaceholders.put('versioncode', versionJsonObject.versionCode) variant.mergedFlavor.manifestPlaceholders.put('versionname', versionJsonObject.versionName) } //為了記住最新的版本號(hào),是需要進(jìn)行文件的回寫(xiě)的,什么時(shí)候回寫(xiě)會(huì)好一點(diǎn) //個(gè)人認(rèn)為只有當(dāng)打包apk的動(dòng)作執(zhí)行成功后 回寫(xiě)文件記錄的版本號(hào)最優(yōu) afterEvaluate { project -> gradle.taskGraph.afterTask {task, taskState -> //這里如果assembleceshirelease 就具體的打包的變種項(xiàng)目,各個(gè)應(yīng)用肯定不一樣,需要調(diào)整下 if (task.name.toLowerCase().contains('assembleceshirelease') && taskState.getFailure() == null) { println('try assemble ceshi release' ) //回寫(xiě)文件操作 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 打包自動(dòng)生成版本號(hào)與日期,apk輸入路徑詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
主站蜘蛛池模板: 尚志市| 遂昌县| 昭通市| 如皋市| 达尔| 双辽市| 余姚市| 惠安县| 德庆县| 开阳县| 柘城县| 河南省| 柳河县| 孟州市| 梁山县| 门源| 电白县| 泾源县| 安溪县| 石屏县| 明水县| 惠来县| 新竹县| 漯河市| 盐亭县| 本溪市| 铅山县| 乐山市| 琼海市| 玉龙| 磴口县| 仪征市| 庐江县| 鄱阳县| 额济纳旗| 敖汉旗| 哈巴河县| 大荔县| 桂平市| 柳州市| 合肥市|