本文用于分享Bugly的Tinker热修复方案接入流程及遇到问题的记录。
开发环境:
Gradle版本:gradle-5.6.4-all
Gradle插件版本:3.5.2
开始接入:
接入流程相对简单,可以直接参考官方文档进行。
官方文档:Bugly Android热更新使用指南
相关问题:
-
依赖问题:
实际上文档中的依赖并不明确,需要参考的另一个文档 Android 应用升级 SDK 更新日志。
例如如果需要接入1.4.2版本,则需要使用对用的Tinker版本,否则有可能导致补丁包无法修复等问题。
Tinker-support配置:
参考文档为:tinker-support配置说明接入方法选择:
接入方法分为继承TinkerApplication
或者使用框架的反射实现。根据Tinker的建议应尽量使用继承方式。
使用过程:
使用流程并不复杂,也是可以直接参考官方文档进行。
官方文档:Bugly Android热更新详解
相关问题:
- Mapping规则重复:
开发中曾遇到这样的问题:在生成补丁包的时候,框架调用基准包的mapping时报混淆规则重复。
看了一下issues中也有提及到相关的问题:issues 1269,issues 1253
这里有2个解决方案:
1- 设置baseApkProguardMapping = false
2- 关闭R8混淆,在AS 3.2以上版本中,R8默认启动,关闭R8需要在gradle.properties中添加:
android.enableR8.libraries = false
android.enableR8=false
- 后台没有应用数据:
导致该原因的可能有不少,可能appid填写错误,可能配置错误等等。
这里分享一个相对隐蔽的问题:App targetSdkVersion >= 28(Android 9.0)情况下,系统默认不允许http网络请求。
官方文档:网络安全配置
解放方案可以参考:适配Bugly不支持Android P