1.背景:

项目中要集成商汤的活体检测sdk,

2.遇到的问题:

商汤提供的demo 可以正常运行,但是将sdk集成至项目中时一直报错,但是商汤侧却没办法提供具体的报错原因

3.解决问题:

反编译商汤的源码发现,报错的原因是so文件导致

商汤反编译的源码.jpg

商汤反编译的源码.png

解压商汤的sdk发现,sdk中只存在armeabi-v7a和armeabi-v8a两个适配文件夹,而项目需要适配armeabi,所以,按照商汤的faq,将v7a中的so文件,拷贝至项目中的armeabi即可解决问题,另外,商汤不支持x86的cpu

4.so文件加载逻辑

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里面也必须有

5.另记一个问题

如果so文件,或者包含so文件的aar被重复引用的话,可能报以下错误

More than one file was found with OS independent path 'lib/arm64-v8a/libIndoorMapSDK2.2.5.so'

6.查看手机cpu信息

adb shell

cat /proc/cpuinfo

结果信息

Processor : AArch64 Processor rev 4 (aarch64)

processor : 0

BogoMIPS : 38.40

Features : fp asimd evtstrm aes pmull sha1 sha2 crc32

CPU implementer : 0x41

CPU architecture: 8

CPU variant : 0x0

CPU part : 0xd03

CPU revision : 4

AArch64是ARMv8 架构的一种执行状态。

android strm,Android 关于so文件的随记相关推荐

  1. android打开wav格式,FileNotFoundException从Android资产中打开wav文件

    在我们的android应用程序中,我们打开位于assets/config/notification.wav中的wav文件.要打开和播放声音,我们使用下面的代码:FileNotFoundExceptio ...

  2. android studio 读取内存txt文件_SharedPreference与文件存储

    Android常用数据存储方式有SharedPreferences存储数据(虽然还是属于内部存储).文件存储(内部,外部).SQLite数据库存储.ContentProvider存储数据.网络存储数据 ...

  3. android sd卡列目录文件_Android正确获取SD卡目录及使用SD卡目录

    此文乃是转载,原文在这里链接 SD卡作为手机的扩展存储设备,在手机中充当硬盘角色,可以让我们手机存放更多的数据以及多媒体等大体积文件.因此查看SD卡的内存就跟我们查看硬盘的剩余空间一样,是我们经常操作 ...

  4. Android 实现无网络传输文件(2)

    在我的上一篇文章:Android 实现无网络传输文件,我介绍了通过 Wifi Direct(Wifi 直连)实现 Android 设备之间进行文件传输的方法,可以在无移动网络的情况下实现点对点的文件传 ...

  5. 解决Android 编译出错 找不到android.databinding.ViewDataBinding的类文件

    报错如下: 错误: 无法访问ViewDataBinding 找不到android.databinding.ViewDataBinding的类文件 有关详细信息, 请参阅以下堆栈跟踪. com.sun. ...

  6. XamarinSQLite教程在Xamarin.Android项目中提取数据库文件

    XamarinSQLite教程在Xamarin.Android项目中提取数据库文件 由于不能直接打开该文件,开发者需要先将数据库文件从Android系统中提取出来.操作步骤如下. (5)选择MyDoc ...

  7. XamarinSQLite教程在Xamarin.Android项目中定位数据库文件

    XamarinSQLite教程在Xamarin.Android项目中定位数据库文件 实际开发中,经常需要验证数据库操作的正确性.这个时候,需要打开数据库文件,进行确认.下面是如何找到MyDocumen ...

  8. Android中项目中各个文件夹的含义和用途详解

    1.src:存放所有的*.java源程序. 2.gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID. 3.assets:可以存放项目一些较大的资源文件,例如:图片. ...

  9. 关于android开发添加菜单XML文件之后无法在R.java中生成ID的问题

    因为和同学分开做的android软件,现在想整合他做的界面部分,于是拷贝了res和src文件夹的文件,其中包括一个res.menu文件夹中的XML.但是每次将该文件导入到工程总无法自动在R.java中 ...

最新文章

  1. linux命令行中curl和wget自动解压功能对比
  2. 【转】接口测试Session/Cookie笔记(二)
  3. 常用数据库优化方案(三)
  4. CV:基于人工智能算法实现人脸口罩的实时检测(结合无人机可,实现实时警告提醒)
  5. js弹出对话框的方法总结
  6. SAP Spartacus 里 对 isPlatformBrowser API 的使用
  7. java标识符_Java标识符的简单介绍
  8. 2022年N1叉车司机考试题及N1叉车司机理论考试
  9. Android开发者如何删除手机自带应用
  10. trans系列是sci几区_怎么确定SCI论文期刊是几区的?
  11. 一个Scrapy爬虫实例
  12. Hive 核心原理(hive-3.1.2)
  13. php 计费系统设计,仓储系统之计费模块设计
  14. TCP连接异常终止(RST包)场景分析
  15. Excel中如何让第一行、第二行一直显示出来 excel冻结窗格与拆分窗格
  16. 编程语言之时下潮流与实用价值
  17. linux阿里云ecs发邮件
  18. “我才是腾讯的第一任董事长”
  19. Centos7 安装DB2
  20. 今日金融词汇--- 商业模式

热门文章

  1. Spring Annotations我从没有机会使用第2部分:@ConfigurationProperties
  2. 鸡肉和鸡蛋–测试前解决Spring属性
  3. 还有更多REST技巧
  4. java创建类的三个步骤_3个简单步骤即可测试Java 8
  5. jHipster入门,第1部分
  6. 在Spring中配置多个View解析器
  7. app mvc框架_Google App Engine上的Spring MVC和REST
  8. python捕获摄像头帧_Xuggler教程:帧捕获和视频创建
  9. 如何使用GZip和Jersey压缩Java REST API中的响应
  10. 揭示垃圾收集暂停的时间长度