使用Android Studio创建的空项目作为Xposed Module App,对于Api Jar包的引用方式,一开始是按照傻瓜式Jar Lib的处理方式,复制XposedBridgeApi-54.jar到app/lib中,然后直接右键Add As Library,也就是在build.gradle中生成了
这样的代码,结果写完IXposedHookLoadPackage实现类,加入assets/xposed_init,修改manifest中的meta后打包安装,Xposed Installer中也顺利检测出了新安装的模块,开启后重启系统,再看Log中出现了:
java.lang.IllegalAccessError class ref in preverified class resolved to unexpected implementation
这样的异常提示,结果当然是hook的代码也没有正确执行,研究后发现原来是jar包的引入方式不对,不能以compile方式加入,而应以provided方式,具体如下:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.2' provided fileTree(dir: 'deps', include: ['*.jar']) }
将jar库移动到了app/deps中,然后更换build.gradle中的引入代码为上面列出的那样,重新sync,编译,安装,激活,重启,测试hook被正确触发并执行了!
博主友情提示:
如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用>>博主专用加密工具v3<<处理后发布,原文只有博主可以看到。
按照官网文档来编写,在android studio编译后没apk生成是怎么回事?求指教
你好,请问Build过程有没有错误提示?
谢谢回复,问题已经解决。run时设置不要activity就可以了
不客气!