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.42k stars 807 forks source link

fix cast error #238

Closed limengyun2008 closed 6 years ago

limengyun2008 commented 6 years ago

在activity中加上这样一句话

ToastUtils.showToast(this, "hello");

如果这个activity是java写的,那patch是没问题的 但是如果这个activity是kotlin写的,那就有问题了:

在kt文件下这句话编译生成的字节码会有一个多余的针对this的cast指令。auto-patch-plugin目前没有处理cast。这样导致生成的patch会报错: XXXActivityPatch can not cast to Context.

我这边对javassist不是特别熟,这个修改是看了文档之后现学的。我这边测试是过了的,但这个PR还是需要你们自测一下

Change-Id: Ia52639004295bbbf2c574439220a006370608604