Android,firefly3399开发板,arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
1.先說下報(bào)的錯(cuò)
大概意思就是arm64-v8a文件夾下找不到libarcsoft_face_engine.so這個(gè)庫,(這個(gè)庫是虹軟人臉識(shí)別2.0)
2.分析原因
百度了下,大概原因:arm64-v8a是可以向下兼容的,但前提是你的項(xiàng)目里面沒有arm64-v8a的文件夾,如果你有兩個(gè)文件夾armeabi和arm64-v8a,兩個(gè)文件夾,armeabi里面有a.so 和 b.so,arm64-v8a里面只有a.so,那么arm64-v8a的手機(jī)在用到b的時(shí)候發(fā)現(xiàn)有arm64-v8a的文件夾,發(fā)現(xiàn)里面沒有b.so,就報(bào)錯(cuò)了,所以這個(gè)時(shí)候刪掉arm64-v8a文件夾,這個(gè)時(shí)候手機(jī)發(fā)現(xiàn)沒有適配arm64-v8a,就會(huì)直接去找armeabi的so庫,所以要么你別加arm64-v8a,要么armeabi里面有的so庫,arm64-v8a里面也必須有
3.解決方法
網(wǎng)上找了各種方法好像都不行,如刪除arm64-v8a文件夾,仍然報(bào)錯(cuò),可能是因?yàn)橛玫钠渌膌ibrary,里面包含arm64-v8a
既然沒辦法刪除,那有沒辦法直接指定系統(tǒng)用什么so架構(gòu)呢?
答案是可以的:
android {...defaultConfig {...ndk {abiFilters "armeabi", "armeabi-v7a", "x86", "mips"}}}就是在項(xiàng)目build.gradle里面,加上
ndk {abiFilters "armeabi", "armeabi-v7a", "x86", "mips" }發(fā)現(xiàn)竟然不報(bào)錯(cuò)了,O(∩_∩)O哈哈~
?
總結(jié)
以上是生活随笔為你收集整理的Android,firefly3399开发板,arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学术-物理:莫比乌斯带
- 下一篇: android sina oauth2.