Sophix热更新调试经验1

最近接入了阿里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.静态资源不能修改

 

 

你可能感兴趣的:(Sophix)