Android 腾讯Bugly(封装tinker) 热更新遇到的坑

这篇文章主要是来讲遇到的问题的,如果需要集成教程

最好还是到官方的文档中心

https://bugly.qq.com/docs/

废话不多说,开始

坑1: 所有针对bugly 属性的设置不生效。

原因:属性设置一定要放在

Bugly.init(getApplicationContext(), "*******", BuildConfig.DEBUG);
初始化之前

坑2: bugly初始化热更新不会像服务器报版本,LOG里没有804成功的信息

原因:在初始化前调用了

Beta.autoCheckUpgrade = false;

这个是因为这一个开关是控制版本更新和热更新两个地方,原本我只是检查不进行版本大更新,结果连热更新都不会有了

解决方法是在初始化后

Beta.checkUpgrade(false,true);
这个方法是手动检查更新,并且检查全量更新也不会弹窗。因为第二个参数是true,标识不弹窗。 但是会上传服务器热更新的版本,即热更新的基线版本和tinkerID。总的顺序就是
Beta.autoCheckUpgrade = false;

Bugly.init(getApplicationContext(), "*******", BuildConfig.DEBUG);

Beta.checkUpgrade(false,true);

坑3:这个是神坑啊,热更新后,发布一个版本更新,发现第一次检查更新会直接提示下载完成。但是并没有下载,也不能升级。重新进入应用就好了。

第一次下载会报错

07-05 13:00:27.503 8568-8568/com.example.a90671.hotfixdemo E/CrashReport: upgrade failed:(2080)安装失败,请检查您的App是否兼容7.0设备

07-05 13:00:27.503 8568-8568/com.example.a90671.hotfixdemo E/CrashReport: download fail, please try later

可以说报错信息起了很大的误导作用,因为这个是bugly自己的bug,只要升级到最新版本就好了。我还在github的热更新demo提了这个问题,当然最后还是我自己发现解决方法的……楼主配置的版本为

compile "com.tencent.bugly:crashreport_upgrade:1.3.5"
// 指定tinker依赖版本(注:应用升级1.3.5版本起,不再内置tinker)
compile 'com.tencent.tinker:tinker-android-lib:1.9.6'
当然其实这个报错是对应了一个Android7的问题的,但是网上和官方文档都说了如何解决。不赘述了。 以上三个问题都是遇到了,但是网上没有查到资料的。




你可能感兴趣的:(Android,编程中遇到的问题,Bugly,热修复,tinker)