-
Notifications
You must be signed in to change notification settings - Fork 170
Open
Description
原始类:
BaseAdView{
public void setOnClickListener(@nullable View.OnClickListener l) {
this.e = l;
super.setOnClickListener(l);
}
}
插桩后的类
public class BaseAdView extends BaseAdView {
class _lancet {
private _lancet() {
}
@TargetClass(scope = Scope.SELF, value = "android.view.View")
@Proxy("setOnClickListener")
static void com_bytedance_tools_codelocator_lancet_view_ViewLancet_setOnClickListenerSelf(View view, View.OnClickListener onClickListener) {
View view2 = view;
CodeLocator.notifySetOnClickListener(view, Thread.currentThread().getStackTrace());
view.setOnClickListener(onClickListener);
}
}
public void setOnClickListener(View.OnClickListener onClickListener) {
//原始代码是:super.setOnClickListener(onClickListener),这里当成this调用了,导致无限循环
_lancet.com_bytedance_tools_codelocator_lancet_view_ViewLancet_setOnClickListenerSelf(this, onClickListener);
}
}
原因:super.setOnClickListener(onClickListener),这里当成this调用了,导致无限循环
Metadata
Metadata
Assignees
Labels
No labels