Bugly热更新遇到的问题

最近项目需要,开始加入热更新的功能。经过网上资料的对比,最终选择用腾讯的tinker。

看了官方文档,还是比较简单的,于是把demo clone下来,一步步按文档完成所有步骤。

按照下图双击assembleRelease打包基线版本,然后修改bug、修改基准包目录、修改tinker_id

双击buidTinkerPatchRelease生成补丁包

Bugly热更新遇到的问题_第1张图片

一切搞定后到bugly后台上传补丁包,这个时候问题来了

Bugly热更新遇到的问题_第2张图片

在网上看了一下可能原因

1、tinker-support.gradle 配置上少了tinkerEnable =true,加上,但是我的问题不在这里,依然没解决。


Bugly热更新遇到的问题_第3张图片

2、基准包目录不对应。我检查了一遍在我这里也是没有问题。

3、tinker_id 没有修改。我重试了很多遍,也不是我这里的原因。

4、初始化市APPID没改成自己的。我也检查了是自己的APPID。

5、基线包装手机上启动一遍,上报联网数据。这个动作自己也有操作。

那么到底是什么原因呢?卡住了很久,但自己基本上确定是tinker_id不匹配的原因。于是再看一遍文档。


Bugly热更新遇到的问题_第4张图片

问题发现:看到了热更新详解上的一个重点,基准包启动上报联网数据有打印信息的,于是连上手机启动apk


Bugly热更新遇到的问题_第5张图片

发现base tinkerId:[] 空的。。。。。。。。。

这个头疼了,问题确定但是不知道什么原因造成的,只能和文档一个个对比去排查。

发现application上tinker安装代码上有点差别,看一下截图

文档上的installTinker();无参数的

Bugly热更新遇到的问题_第6张图片

Demo上的installTinker(this);有参数的

Bugly热更新遇到的问题_第7张图片

而自己的就是按照Demo上写的带参,我尝试去掉从新打包安装到手机再看LOG打印,竟然tinkerId有数据了。

Bugly热更新遇到的问题_第8张图片
Bugly热更新遇到的问题_第9张图片

这个到底是因为什么,我也不知道是为什么。只是笨拙的试错。最终下发成功!

Bugly热更新遇到的问题_第10张图片

你可能感兴趣的:(Bugly热更新遇到的问题)