Android,firefly3399开发板,arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题

1.先说下报的错

大概意思就是arm64-v8a文件夹下找不到libarcsoft_face_engine.so这个库,(这个库是虹软人脸识别2.0)

2.分析原因

百度了下,大概原因:arm64-v8a是可以向下兼容的,但前提是你的项目里面没有arm64-v8a的文件夹,如果你有两个文件夹armeabi和arm64-v8a,两个文件夹,armeabi里面有a.so 和 b.so,arm64-v8a里面只有a.so,那么arm64-v8a的手机在用到b的时候发现有arm64-v8a的文件夹,发现里面没有b.so,就报错了,所以这个时候删掉arm64-v8a文件夹,这个时候手机发现没有适配arm64-v8a,就会直接去找armeabi的so库,所以要么你别加arm64-v8a,要么armeabi里面有的so库,arm64-v8a里面也必须有

3.解决方法

网上找了各种方法好像都不行,如删除arm64-v8a文件夹,仍然报错,可能是因为用的其他的library,里面包含arm64-v8a

既然没办法删除,那有没办法直接指定系统用什么so架构呢?

答案是可以的:

android {

    ...
        
    defaultConfig {
       
        ...

        ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
        }
    }

 }

就是在项目build.gradle里面,加上

ndk {
    abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}

发现竟然不报错了,O(∩_∩)O哈哈~

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值