android gradle tool版本从3.3升级到3.6.3问题记录

本文记录了项目的gradle tools 从3.3.0版本,升级到3.6.3过程中,遇到的问题,以及如何解决。
gradle tool升级步骤:

  1. 项目根目录的build.gradle,搜索com.android.tools.build:gradle:改后面版本号。
  2. IDE会要你一并升级根目录gradle/wrapper目录下的文件。
  3. 点确定,sync即可

下面是遇到的一些问题处理

1.编译失败,提示unknow option "-ignorewarning"

解决办法:找到proguard混淆文件,搜索-ignorewarning 使用-ignorewarnings代替(后面多个s)

2. 编译失败,提示 buildOutput.apkData must not be null

解决办法: 项目clean,rebuild 解决。

3.编译失败, aidl文件报红

我们使用Binder解决视频压缩跨进程通信问题,文章链接
其中使用aidl规范跨进程通信,gradle老版本会编译通过,新版本报错
解决办法:
1、删掉aidl文件的中文注释
2、gradle新版本会把编译默认内存减少,需要我们手动在项目根目录的gradle.properties文件,加入org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=512m

4. 编译成功,但auto-service编译产物丢失

我们使用auto-service生成路由地址,打通了组件之间路由的跳转文章链接
gradle老版本会有apt的产物,升级后丢失了。导致我们项目虽然编译通过,但页面直接的跳转功能瘫痪

原因:新版gradle将忽略compile classpath中的annotation processor,需要手动添加到annotation processor path
解决办法,在注解工程的build.gradle的dependencies 节点添加

annotationProcessor 'com.google.auto.service:auto-service:1.0-rc6'

小结:

上面问题基本涵盖了大部分遇到的情况,项目改好后顺利通过了我们的自动化测试介绍、搭建指引。
android的R8混淆在gradle tools升级到3.6.3后,也稳定了,顺水推舟,我们项目选择了开启。
R8混淆开启方法:需要我们手动在项目根目录的gradle.properties文件,加入android.enableR8=true
讲R8比较好的文章
gradle tool 历代版本介绍

你可能感兴趣的:(android gradle tool版本从3.3升级到3.6.3问题记录)