补丁加载特殊异常情况说明

  1. UnsatisfiedLinkError... libandfix.so

找不到so文件, 参考part1节说明

  1. IllegalArgumentException: Expected receiver of type com.taobao.hotfix.demo.BaseBug_CF_1476949855532, but got com.taobao.hotfix.demo.BaseBug

patch方法被反射调用了

  1. java.io.InvalidClassException: com.demo.Temp; local class incompatible: stream classdesc serialVersionUID = -3445057096334719727, local class serialVersionUID = 4436690298739845368

反序列话失败, 我们知道实现了Serializable接口的一个类如果发生了任何变更(不包括方法内部的具体实现), 那么运行期间computeSerialVersionUID计算得到的SUID和反序列化文件得到的SUID不一致, 所以反序列号失败. 实际上类你可能没有手动修改它, 但是由于hotfix内部运行的需要可能会把这个类的一些method和field的访问符强制转为public, 那么这种情况下就会导致反序列失败. 这种情况下, 我们建议强制写死static final long serialVersionUID=value