lancet icon indicating copy to clipboard operation
lancet copied to clipboard

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

Open xiachengcheng opened this issue 5 years ago • 2 comments

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

xiachengcheng avatar Apr 14 '20 08:04 xiachengcheng

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

ydslib avatar Jun 26 '20 03:06 ydslib

虽然在 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();
}

penneryu avatar Jun 28 '20 03:06 penneryu