支持arm64-v8a的联发科设备安装APK报错-113该如何解决?
问题根因
联发科MT6762 Helio P22、MT6761 Helio A22硬件层面确实支持arm64-v8a架构,安装APK触发NativeHelper报错-113不属于芯片本身的硬件限制,问题出在搭载这两款芯片的设备的厂商定制ROM:部分厂商针对这两款中低端芯片做ROM裁剪时,阉割了64位原生库的运行支持组件,或者系统NativeHelper模块存在架构识别逻辑bug,会错误判定64位原生库不兼容,导致复制原生库阶段失败。
可行解决方案
- 双架构打包:在应用的build.gradle配置的ndk.abiFilters参数中同时加入
arm64-v8a和armeabi-v7a,系统会自动匹配对应架构的原生库加载,既不会影响骁龙、Exynos设备的64位性能,也能兼容这两类联发科设备,是优先推荐的方案。 - 分包适配:如果对安装包体积有严格要求,可以针对这两款芯片做定向适配,在应用下载页或者安装前检测设备芯片型号,若命中MT6762/MT6761则引导用户下载仅
armeabi-v7a架构的安装包。 - 全局降级架构:如果应用无64位性能需求,可以直接全局切换为
armeabi-v7a架构编译,兼容性覆盖范围最广,所有设备均可正常安装运行。
补充说明:如果应用需要上架Google Play,平台要求必须包含64位架构,仅可选择双架构打包方案,实测双架构打包的应用在这两类联发科设备上会自动识别并加载
armeabi-v7a架构的库,不会触发报错。
内容的提问来源于stack exchange,提问作者raiym
相关产品推荐
相关产品推荐

