AndroidStudio解决Device supports x86,but APK only supports armeabi-v7abi...问题

在进行TensorFlow模型的安卓移植时,碰到了这个问题
这里面x86, armeabi-v7abi等都指的是CPU的架构类型。而查看自己的CPU架构类型可以通过命令行查找。

问题起因:GitHub上下载了一个源码,导入Androidstudio的时候报出这个错误。
我的电脑是x86类型的,而在他源码中并没有对这个类型进行支持。

解决步骤

1、在build.gradle的defaultConfig里面加上自己的类型,如图红框中所示,是我后来加上去的。你缺少了什么就加上相应的。在这里插入图片描述
2、在libs目录下面也要对应的添加目录x86,并将armeabi-v7a中的文件全部复制过来,如图所示,红框的目录原本是没有的,这里新建的。
在这里插入图片描述
我这里x86里面装的是从包含so文件的armeabi-v7a文件夹复制过来的。

这个问题前阵子困扰了好久,参考网上的博客里面都只有上面的第一步,这样我会出现INSTALL_FAILED_NO_MATCHING_ABIS问题,然后就慢慢走远了…
今天继续拿来解决这个问题,按上面的步骤就成功解决了。

第二天更新
上面这么做以后编译已经没有问题,但是在加载库文件的时候出现报错。
报错发生在下面的代码位置:
在这里插入图片描述
控制台报错:java.lang.UnsatisfiedLinkError: dlopen failed:…/lib/x86/libtensorflow_inference.so" has unexpected e_machine: 40 (EM_ARM)
这个意思是**.so文件的指令集和运行程序的指令集不匹配。**我这里需要的是x86的.so
文件,但是由于我是从armeabi-v7a里面复制出来的,因此这里实际上是arm类型的文件。
所以解决办法应该是要找到正确CPU架构类型的.so文件,或者在自己机器上bazel编译对应的文件。
如果实在不想解决这个问题,编译通过后,在手机上安装是能够成功运行不会闪退的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值