android studio 升级到3.5遇到的bug,环信sdk混淆无法发图片

环境:android studio从3.4升级到3.5,gradle插件版本升级到最新的3.4.2,gradle版本为5.1.1以上

别的还好,升级对应包就好,最大问题是混淆,自己写的混淆文件有的不被识别,折腾了下,改了混淆文件,自己的代码没问题,然后发现第三方环信的无法发送图片了,查了日志,果然是环信的bug,全是环信的包名,请求图片上传的时候报错了。

无奈,去看gradle官方文档,找到了原因:

https://developer.android.google.cn/studio/releases/gradle-plugin#updating-plugin

R8 默认处于启用状态:R8 将脱糖、压缩、混淆、优化和 dex 处理整合到一个步骤中,从而显着提升了编译性能。R8 是在 Android Gradle 插件 3.3.0 中引入的,对于使用插件 3.4.0 及更高版本的应用和 Android 库项目,R8 现已默认处于启用状态。

下图简要介绍了 R8 引入之前的编译流程。

在 R8 之前,ProGuard 是一个与 dex 处理和脱糖不同的编译步骤。

现在,有了 R8,可以在一个步骤中完成脱糖、压缩、混淆、优化和 dex 处理 (D8),如下图所示。

有了 R8,可以在一个编译步骤中执行脱糖、压缩、混淆、优化和 dex 处理。

请注意,R8 旨在与您现有的 ProGuard 规则配合使用,因此您可能不需要采取任何操作即可从 R8 中受益。但是,相对专为 Android 项目设计的 ProGuard 而言,R8 是一项不同的技术,因此压缩和优化可能会导致移除 ProGuard 可能没有的代码。因此,在这种不太可能的情况下,您可能需要添加其他规则,以在编译输出中保留这些代码。

这一段说明了r8对混淆的影响,而目前如果第三方不去解决,又要升级,只能把r8关了,方法如下:

在gradle.properties中加入以下代码:

# Disables R8 for Android Library modules only.
    android.enableR8.libraries = false
    # Disables R8 for all modules.
    android.enableR8 = false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值