博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记录android老项目studio升级3.1+后重新配置gradle踩过的坑
阅读量:6970 次
发布时间:2019-06-27

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

hot3.png

//                def releaseApkName = 'KGRingeToneV' + defaultConfig.versionName + '-release' + variant.productFlavors.get(0).name + '.apk'//                 output.outputFile = new File(oldFile.parent, releaseApkName)                            outputFileName = "KGRingeToneV${defaultConfig.versionName}-release${variant.productFlavors.get(0).name}.apk"

关于打包apk名字的定义,studio3.0之前支持是如上图直接对文件的File直接定义,升级后不再支持对file的定义,不能拿到file的写的权限,谷歌了些资料后,发现我们可以定义它的生成file文件名定义

接着是对我们的渠道进行定义的问题

flavorDimensions("channel") //顾名思义,是为我们现在要打渠道再可以多添加一个维度    productFlavors {//多渠道打包 要在manifest 
// _0m{} _102m { dimension "channel" } }

在原来基础上添加多了维度,在扩展维度的基础上,比如说我们commpanyA和companyB,有对应的不同渠道,可以这样写,这儿参考部分网上资料,相信其实升级是为了实现更多元化的配置,实现很多不同打包版本的需求。比如下面

productFlavors{    companyA{        dimension "company"        buildConfigField "String","FLAVOR_NAME","\"companyA\""    }    companyB{        dimension "company"        buildConfigField "String","FLAVOR_NAME","\"companyB\""    }    channelA{        dimension "channel"        buildConfigField "String","FLAVOR_NAME","\"channelA\""    }    channelB{        dimension "channel"        buildConfigField "String","FLAVOR_NAME","\"channelB\""    }}

下面遇到最坑的估计是这个:一直说aapt2是个坑,果然确实也是坑,aapt2是aapt的估计升级版,今年18年后,以前遇到有些关于aapt的编译异常直接可以添加

android.enableAapt2=false

解决,18年后估计这个会取消,连同升级为据说studio 3.2.0 alpha版本有对这个问题修复。我目前的版本号studio 3.1.2,在编译以前老项目,因为想研究看看,遇到下面这个图片的问题,这儿注意我觉得平时少去看报错注释,其实隐含了很多信息。一般编译报错会给你报具体哪一行,这儿只有一个error: . 基本搜索不到这个问题,没认真看报错所有注释的坑,就是带来自己更长时间的困扰,找问题。排除。

aed56acc3c5b0c99dc155124b3cd7e839ff.jpg

下面我们认真看看它的报错信息,其实是有提示到的,是图片问题,一般aapt就负责所有resource资源的合并、编译、归整等工作,一般aapt就是比如你的layout可能有问题了,或者只是因为一个不规范的输入导致可能莫名的报错。

61ba639c9072d6542a22db77bd46c36ee92.jpg

看到了吗,builder.png 是图片的问题,其实认真看报错有收获的。最后我看了图片几百张,每张都去看,感觉很耗时间,我打算输入部分删除法,删掉一部分,看还会不会报这个 error: .错的问题,使用了大概四五次,最后定位到有一张图片有问题,认真看确实没看出什么问题,这个图片就是个编辑过9patch图片。有点神坑。最后总算解决,编译完成,项目完美运行

最后附图:真没看出来图片啥问题,名字定义和系统显示是一样的,是不也是aapt个bug。有知道童鞋麻烦告诉下,谢谢。

0ed8b241784311e5d89bdcc735f6855e8cb.jpg

转载于:https://my.oschina.net/u/3318187/blog/1994023

你可能感兴趣的文章
搭建自己的iOS内测分发平台
查看>>
Unix下C语言开发工具
查看>>
AXURE插件在 Chrome 浏览器中用不了怎么办?
查看>>
css 文本超出2行就隐藏并且显示省略号
查看>>
25.EXTJS 主页面的jsp
查看>>
Verilog语法
查看>>
PGA
查看>>
用H5上传文件
查看>>
Atom替换换行符
查看>>
ASP.NET Core 开源GitServer 实现自己的GitHub
查看>>
今天周五啦
查看>>
Linux SendMail发送邮件失败诊断案例(四)
查看>>
C# ManualResetEventSlim 实现
查看>>
JMockit常用操作
查看>>
NO.2 安装配置
查看>>
SpringMVC+hibernate4事务处理
查看>>
大型网站架构演化历程
查看>>
oracle如何查询哪个表数据量大
查看>>
python os用法笔记
查看>>
IntelliJ IDEA强制更新Maven的包
查看>>