遇到一个需求,对Android手机里的dex文件进行读取,运行里面的方法,但是一直会报这个错,网上看了很多方法,有的是重写App类的,有的说是删除.gradle的,有的说是关闭instant run的,还有的说因为分包问题,dex文件大于64k的,我的dex文件只有1k啊,折磨了半天后发现了问题,so文件64位。所以在app的buildgradle的defaultConfig里添加这行代码,编译。
运行后奇迹就发生了!这里的原因是输出没有兼容不同手机的cpu,这里使用abiFilters进行过滤。每一种 CPU 构架,都定义了一种 ABI(Application Binary Interface),ABI 决定了二进制文件如何与系统进行交互。