系统app 要求指定使用 32bit的so库,但是android Sudio 编译出来的app,使用 System.loadLibrary() 加载库的时候,硬是要去 加载 64bit的库, 把 /system/lib64 下的库手动删除掉,它还是只会去64bit的库路径下面查找,并且还log明确告诉你它查找库的路径和顺序,没辙。 这里为了临时达到目的,取个巧:
设备上 /data/system/packages.xml 文件记载了app的信息, 其中一条: primaryCpuAbi="arm64-v8a" 就表明其实一个 64bit的, 如果手动把他改成 primaryCpuAbi="armeabi-v7a" 则app再启动的时候默认就会去加载 32-bit的so库了。 重启系统,这个xml文件也不会还原。(tip: 最好把指定要加载的库 改个独一无二的名字比如 libtest_32.so System.loadLibrary(test_32),然后放到 app安装目录的 *lib/arm/libtest_32.so ), loader OK。 参阅 /data/system/packages.xml_主要看气质的搬砖者的博客-CSDN博客_data/system/packages.xml