Bugly热更新修复失败的一种解决方法(Tinker Exception:can't recognize dex mode:)

最近在项目中接入bugly的热修复功能,按照文档来做:https://bugly.qq.com/docs/user-guide/instruction-manual-android-hotfix-demo/ 。但是我发现了一个问题,就是在后台总是显示如下图这样的问题:
这里写图片描述

就是补丁显示已下发,但是激活总是0,也就是可能是下载补丁成功了,但是却没有安装成功。

通过打开log查看原因,打开方式如下图:
这里写图片描述
结果发现,当补丁下载成功后,我的后续操作就报错了,主要是下面一句:

Throwable:Tinker Exception:can't recognize dex mode:XXXX.jar

解决方案:
在我的项目的build.gradle中配置如下:

classpath "com.tencent.bugly:tinker-support:latest.release"

在我的app模块的build.gradle中配置如下:

compile 'com.tencent.bugly:crashreport_upgrade:1.3.4'
//compile 'com.tencent.bugly:crashreport_upgrade:1.3.1'
//1.3.1是我出问题的版本

这样再次重新走热更新的测试流程:
如下:

01-03 22:37:37.574 28526-28696/? I/Tinker.TinkerResultService: TinkerResultService receive result: 
                                                               PatchResult: 
                                                               isSuccess:true
                                                               rawPatchFilePath:/data/user/0/我的包名/app_tmpPatch/tmpPatch.apk
                                                               costTime:5961
                                                               patchVersion:495495fb58416dd186c6b439345c0124
01-03 22:37:37.576 28526-28526/? I/CrashReport: Tinker patch success, result: 
                                                PatchResult: 
                                                isSuccess:true
                                                rawPatchFilePath:/data/user/0/我的包名/app_tmpPatch/tmpPatch.apk
                                                costTime:5961
                                                patchVersion:495495fb58416dd186c6b439345c0124

这次就可以了,原因应该是导入的库版本不一致导致的。文档中是:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        // tinkersupport插件, 其中lastest.release指拉取最新版本,也可以指定明确版本号,例如1.0.4
        classpath "com.tencent.bugly:tinker-support:1.0.8"
    }
}

而我在配置时改成了:

classpath "com.tencent.bugly:tinker-support:latest.release"

所以发生了错误,只要保证app模块的crashreport_upgrade库版本相应提升即可。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值