满意答案
huifan12
2018.04.18
采纳率:45% 等级:9
已帮助:162人
你的项目中由于有arm64-v8a,又有armeabi,X86等其他的架构,就使得混合使用了32bit和64bit的库文件,如果系统先使用64bit的库文件时,则后续的库文件都是以64bit来加载执行。
针对系统应用来说,它的库文件存放在/system/lib,所以无法确定该应用是否依赖其他应用在system/lib下的库文件。因此安装包管理器,无法确定系统应用使用哪种架构abi,故在64bit模式下运行。
当你安装应用到系统时,系统会从lib目录下的(armeabi, armeabi-v7a, arm64-v8a, x86, x86_64, mips64, mips)文件夹中查找本地库文件,不同的架构加载不同的文件夹下的库文件。例如64bit的架构从arm64-v8a、x86_64、mips64这些目录中加载。如果你的arm64-v8a文件夹下刚好有这个需要使用到的库文件,则不会从其他文件夹如armeabi加载该库文件。此时就会出现32bit库文件和64bit库文件混合使用的情况,但是32bit的库文件不能和64bit的库文件不能混合使用。
解决方法就是,全部使用32bit的库,把arm64-v8a、X86_64删掉。
00分享举报