首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android资源的Xposed

Android资源的Xposed
EN

Stack Overflow用户
提问于 2014-03-24 08:56:05
回答 2查看 2.7K关注 0票数 2

我正试图使用Android上的连接到Android资源上,特别是Webview的loadUrl。下面的代码挂在loadUrl上,如果成功,就在日志上打印一条消息。

代码语言:javascript
复制
findAndHookMethod("com.example.webview.MainActivity", lpparam.classLoader, "android.webkit.WebView.loadUrl", new XC_MethodHook() {
        @Override
        protected void afterHookedMethod(MethodHookParam param) throws Throwable {
            XposedBridge.log("we are in loadurl!");
        }

但是,这样做会引发一个错误:

java.lang.NoSuchMethodError: android.webkit.WebView#android.webkit.WebView.loadUrl()#exact

它甚至有可能连接到Android资源与xposed?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-18 15:22:54

它找不到方法,因为您没有指定方法参数。函数试图找到不存在参数的loadUrl方法。

查看webView,有以下签名:

  • loadUrl(字符串url)
  • loadUrl(String url,Map additionalHttpHeaders)。

我还没有测试过,但这应该是可行的:

代码语言:javascript
复制
try {
    Method loadUrl1 = android.webkit.WebView.class.getDeclaredMethod("loadUrl", String.class);

    Method loadUrl2 = android.webkit.WebView.class.getDeclaredMethod("loadUrl", String.class, Map.class);

    XposedBridge.hookMethod(loadUrl1, new XC_MethodHook() { /* your code here*/});
    XposedBridge.hookMethod(loadUrl2, new XC_MethodHook() { /* your code here*/});

} catch (NoSuchMethodException e) { ... }

或者即使使用您使用的相同的API:

代码语言:javascript
复制
findAndHookMethod(classname, classloader, methodName, **ARGUMENTS[]**, xc_hook)

另外,您的意思是类名"android.webkit.WebView“和方法"loadUrl”吗?

祝好运

票数 0
EN

Stack Overflow用户

发布于 2014-11-25 05:49:42

你可以简单地用"hookAllMethods“

代码语言:javascript
复制
XposedBridge.hookAllMethods("com.example.webview.MainActivity", "loadUrl", new XC_MethodHook() {
        @Override
        protected void afterHookedMethod(MethodHookParam param) throws Throwable {
            XposedBridge.log("we are in loadurl!");
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22604785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档