android strm,Android 关于so文件的随记
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文件的随记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 滕州房管局备案查询网站(滕州房管局备案查
- 下一篇: (linux .svn)