eleme / lancet

A lightweight and fast AOP framework for Android App and SDK developers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

如何weave onCreate一类无返回值的方法

xiachengcheng opened this issue · comments

commented

@Proxy("onCreate")
@TargetClass("androidx.appcompat.app.AppCompatActivity")
public static void onCreate(@nullable Bundle savedInstanceState) {
Log.e(tag, "AppCompatActivity.onCreate");
Origin.callVoid();
}
没有Log出对应的信息
应该是没有weave成功

我也是无法织入,感觉我的调用方法没啥问题

虽然在 Proxy , Insert 中我们指定了方法名, 但识别方法必须要更细致的信息. 我们会直接使用 Hook 方法的修饰符,参数类型来匹配方法.
所以一定要保持 Hook 方法的 public/protected/private static 信息与目标方法一致,参数类型,返回类型与目标方法一致.

试试

@Proxy("onCreate")
@TargetClass("androidx.appcompat.app.AppCompatActivity")
protected void onCreate(Bundle savedInstanceState) {
    Log.e("aaa", "AppCompatActivity.onCreate");
    Origin.callVoid();
}