Sophix热更新调试经验1

本文分享了使用阿里Sophix进行热更新的实际经验,强调了热更新时不能新增旧包中不存在的类,不能修改作为系统进程跨进程调用的资源,并且静态资源也不能被改动。通过解决具体错误实例,详细解析了常见问题及其解决方案。

最近接入了阿里Sophix热更新,接入很简单,但打补丁时还有一些规则,

官网应该有补丁注意事项文档,但我今天没找到。如下:

基于原理 1.不能有旧包中没有的类,2.作为icon和通知栏(即系统进程跨进程调用的资源,例如remoteViews)

不能修改。

我今天debug时遇到的错误是:

Sophix.PatchManager:  loadPatch fail code: 134 msg: lost some libs

      com.taobao.sophix.a.b: lost some libs
        at com.taobao.sophix.b.c.a(Sophix:214)
        at com.taobao.sophix.a.c.a(Sophix:470)

一开始以为是gradle配置的库有变化,跟历史版本对比后发现没有问题,开始怀疑是打正式包时混淆配置的问题,因为报错是发生在未混淆的debug包上,打了正式包后报错

java.lang.IncompatibleClassChangeError: Expected 'com.qmm.hqz.ui.adpter.CandyFragmentAdapter com.qmm.hqz.ui.CandyFragment.h'

这就很明显了,之前的CandyFragmentAdapter是static 的,今天去掉了

改回后正常,所以注意事项还有3.静态资源不能修改

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值