记录android老项目studio升级3.1+后重新配置gradle踩过的坑

2019独角兽企业重金招聘Python工程师标准>>> 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。有知道童鞋麻烦告诉下,谢谢。

记录android老项目studio升级3.1+后重新配置gradle踩过的坑_第1张图片

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

你可能感兴趣的:(记录android老项目studio升级3.1+后重新配置gradle踩过的坑)