Android APK arm64-v8a CPU 架构适配

一、v8a 架构的手机 安装只适配 v7a CPU 架构的apk 会报错

image.png

解决方案:在项目配置里面指定cpu架构,ndk里配置了什么的CPU架构,apk打包后就包含什么架构

 ndk {
            abiFilters "armeabi-v7a" //arm64-v8a
        }
image.png

这样即使使用v8a的手机,也会执行v7a 里面的.so 文件

二、如何适配v8a的CPU,我刚开始想的是新增一个arm64-v8a目录,把v7a的.so文件移动过去即可,但是运行起来会报下面的错误 dlopen failed xxxxx is 32-bit instead of 64-bit

dlopen failed: "/data/app/com.sandro.openalprsample-CVu3Ji7GuRM5MmCxZF2qlw==/lib/arm64/libopenalpr-native.so" 
is 32-bit instead of 64-bit
armeabi-v7a 里面的.so 是32位的,所以如果要适配arm64-v8a,必须找到对应64位的.so文件

三、作者解析2019-12-25日的微信安装包,目前已经全面适配arm64-v8a CPU架构了,armeabi-v7a 从2011年开始成为主流的,而目前主流的cpu架构都是arm64-v8a,所以建议大家都进行适配,作者之所以适配的原因是,Google Play 强制要求在2010年2月1日,必须适配arm64-v8a,所以才有的这篇文章,建议大家也去适配,这是早晚要做的!

image.png

公众号

你可能感兴趣的:(Android APK arm64-v8a CPU 架构适配)