使用Android Studio创建的空项目作为 App,对于Api Jar包的引用方式,一开始是按照傻瓜式Jar Lib的处理方式,复制-54.jar到app/lib中,然后直接右键Add As Library,也就是在build.gradle中生成了
files(‘lib/Xposed-54.jar’)
这样的代码,结果写完IXposedHookLoadPackage实现类,加入assets/xposed_init,修改manifest中的meta后打包安装,Xposed Installer中也顺利检测出了新安装的模块,开启后重启系统,再看Log中出现了:
java.lang.IllegalAccessError class ref in preverified class resolved to unexpected implementation
这样的异常提示,结果当然是hook的代码也没有正确执行,研究后发现原来是jar包的引入方式不对,不能以方式加入,而应以方式,具体如下:
1 | dependencies { |
2 | compile fileTree(dir: 'libs' , include: [ '*.jar' ]) |
3 | compile 'com.android.support:appcompat-v7:21.0.2' |
4 | provided fileTree(dir: 'deps' , include: [ '*.jar' ]) |
5 | } |
将jar库移动到了app/deps中,然后更换build.gradle中的引入代码为上面列出的那样,重新sync,编译,安装,激活,重启,测试hook被正确触发并执行了!
转自: