Meituan-Dianping / Robust

Robust is an Android HotFix solution with high compatibility and high stability. Robust can fix bugs immediately without a reboot.
Apache License 2.0
4.4k stars 805 forks source link

新增的类涉及到Callback,补丁中没有生成对应的实现 #400

Closed directionyu closed 4 years ago

directionyu commented 4 years ago

异常类型:补丁加载后运行异常

手机系统版本:如:Android 9.0

Robust版本:如:0.4.87.5

Gradle版本:如:3.20

系统:如:mac

堆栈/日志:

新增的类中涉及回调的方法,但是补丁中没有生成对应的类或者方法,补丁加载完报java.lang.NoClassDefFoundError .

典型场景使用Runnable val runnable = Runnable { xxxxx } instance!!.executorSupplier.forNetworkTasks().submit(runnable)

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/xx/xx/xx/xx$Test$runnable$1;

补丁中只生成Test类,但是并没有生成runnable 的实现

RyanHuen commented 4 years ago

你新增一个类 实现Runnable 这个类标注上@Add 用新增的这个类就可以了

匿名内部类 robust会生成一个$1的class 但是不会打到patch里 所以包NoClass

这个可能是他们的机制