博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gradle 3.0.0设置Apk文件输出命名
阅读量:7236 次
发布时间:2019-06-29

本文共 1781 字,大约阅读时间需要 5 分钟。

为了方便识别apk文件,一般我们都希望通过androoid studio打包的文件,会带上app的名字,时间,之类的,使用多渠道打包的时候,还希望带上渠道名称

以前我都这样做

//修改生成的apk名字android{        applicationVariants.all { variant ->            if (variant.buildType.name.equals('release')) {                variant.outputs.each { output ->                    def parent = './apk/'                    def buildName                    def releaseApkName                    def type = variant.buildType.name;                    releaseApkName = buildName + '_' + type + "_" + versionName + '_' + getDate() + '.apk'                    output.outputFile = new File(parent, releaseApkName)                }            }      }}复制代码

但是gradle更新到3.0.0以后就不行了,会报错

Error:(26, 0) Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apkData=Main{
type=MAIN, fullName=release, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.Open File复制代码

再贴个图

这个错误大概意思就是outputFile这个引用现在是“read-only ”(只读)的,不能重新赋予新的对象。也就是说原来的讨论不让用了,经过多方Google,我找到了这个方法

现在这样做

android{  applicationVariants.all { variant ->        if (variant.buildType.name.equals('release')) {            variant.outputs.all { output ->                def buildName = "Downloader"                def type = variant.buildType.name                def releaseApkName = buildName + '_' + type + "_" + versionName + '_' + getTime() + '.apk'                outputFileName = releaseApkName            }        }    }}复制代码

两种方式的区别在于,重命名的地方,从 variant.outputs.each 方法改成 variant.outputs.all 方法,以及output.outputFile = new File(parent, releaseApkName) 改成 outputFileName = releaseApkName,就是说,现在不能指定路径,你只能修改文件名,路径只能使用默认的(当然你如果找到了可以修改路径的方法,千万留言),默认路径一般在/app/build/outputs/apk/{buildType}/:

你如果使用Android stuido 的打包选型,并且创建了新的productFlavors,会在App文件夹里自动创建对应productFlavors的文件:

转载地址:http://jvgfm.baihongyu.com/

你可能感兴趣的文章
模块化TableView
查看>>
Java笔试题算法和数据库部分
查看>>
移动端解决一像素边框问题。拿走不谢,border.css
查看>>
开源大数据周刊-第33期
查看>>
Android View篇之启动页倒计时动画的实现
查看>>
Linux文件锁
查看>>
centos磁盘挂载
查看>>
web前端CSS选择符:表示要定义样式的对象
查看>>
MySQL 每秒 570000 的写入,如何实现?
查看>>
LeetCode6: ZigZag Conversion(Z字形变换)
查看>>
我眼中的原型链,简单粗暴
查看>>
腾讯IMWeb团队2019暑期实习生招骋
查看>>
《私密管家》隐私策略
查看>>
java反射
查看>>
那些年收藏的技术文章(一) CSDN篇
查看>>
不为人知的reduce()方法
查看>>
Sprk submit 过程
查看>>
工行网络金融部总经理钱斌:通过区块链技术管理贵州扶贫基金
查看>>
xcodebuild结合shell脚本实现iOS工程一键打包
查看>>
有关组件的尝鲜-SAOUnit弹窗
查看>>