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.41k stars 806 forks source link

多个补丁只有一个补丁生效 #301

Closed yijiangxiyang closed 5 years ago

yijiangxiyang commented 5 years ago

你好, List fetchPatchList中有多个补丁时, 实际上只有一个补丁生效. 我开始修改方法A, 生成一个补丁零patch_v0.jar, 然后修改方法B, 生成补丁一patch_v1.jar, 把补丁逐个放到/storage/emulated/0/robust/目录下测试, 都达到预期效果. 但后来发现补丁一中已经包含了补丁零的修改, 这也导致了补丁越来越大. 后来我试下在制作补丁前把之前制作补丁零的标识(如@Modify)去掉, 制作出来的补丁一单独测试也生效了. 但这时同时把两补丁放到robust/目录, 日志显示两补丁都apply result true, 但实际上只有补丁一生效. 谢谢.

手机型号:华为CAM-AL00, 红米4A 手机系统版本:华为Android 6.0 ,红米Android 6.0.1 Robust版本:0.4.82

Gradle版本:3.3

系统:windows

堆栈/日志:

11-05 14:20:27.123 27371-27819/? D/robust: current path:com.gm.gumi.ui.activity.RobustActivity find:ChangeQuickRedirect com.gm.gumi.kit.robust.RobustActivityPatchControl 11-05 14:20:27.126 27371-27819/? D/robust: patch LocalPath:/storage/emulated/0/robust/patch_v0.jar,apply result true 11-05 14:20:27.222 27371-27819/? D/robust: current path:com.gm.gumi.ui.activity.RobustActivity 11-05 14:20:27.223 27371-27819/? D/robust: current path:com.gm.gumi.ui.activity.RobustActivity find:ChangeQuickRedirect com.gm.gumi.kit.robust.RobustActivityPatchControl 11-05 14:20:27.224 27371-27819/? D/robust: patch LocalPath:/storage/emulated/0/robust/patch_v1.jar,apply result true

yijiangxiyang commented 5 years ago

经多次测试表明, 同一个类中的修改只能用一个补丁, 否则只有其中之一生效. 不同类之间的修改可用不同的补丁, 测试有效.