百度地图离线sdk java_百度地图SDK java.lang.UnsatisfiedLinkError: Couldn't load BaiduMapSDK...
錯(cuò)誤信息java.lang.UnsatisfiedLinkError: Couldn‘t load BaiduMapSDK_v3_2_0_15 from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.baidudemo-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.baidudemo-1, /vendor/lib,
/system/lib]]]: findLibrary returned null
在lib 發(fā)現(xiàn)明明有l(wèi)ibBaiduMapSDK_v3_2_0_15.so這個(gè)文件,但是為何還是報(bào)錯(cuò)呢....寫了一個(gè)Demo 發(fā)現(xiàn),沒有報(bào)錯(cuò),最后一個(gè)一個(gè)推測,發(fā)現(xiàn)
區(qū)別在于?armeabi和armeabi-v7a
如果armeabi文件夾下還有其他的
.so文件,也需要一并copy至armeabi-v7a
而這個(gè)armeabi和armeabi-v7a究竟是什么意思?
有什么深意么?
為什么調(diào)試模式和發(fā)行模式adobe會選擇不同的文件夾?
查了以下
armeabi與armeabi-v7a表示支持不同的CPU類型
armeabi是指的該so庫用于ARM的通用CPU,而v7a的CPU支持硬件浮點(diǎn)運(yùn)算。因此armeabi通用性強(qiáng),但速度慢,而v7a能充分發(fā)揮v7a CPU的能力,在AIR打包APK調(diào)試模式adobe選擇的是通用性強(qiáng)的armeabi模式。
android支持不同CPU的深層含義
首先從硬件支持方便來看,我們的adnroid設(shè)備目前為止大部分都是支持ARM芯片,(當(dāng)然市面上此刻最新的android機(jī)器還支持intel等另外的幾個(gè)芯片,例如intel最新的凌動項(xiàng)目芯片,就獲得了android4.1的青睞)。從android版本與支持ARM硬件編碼的程度來看:
起初android1.6:只支持armv4與armv5te指令集。
到了android2.0:增加了支持arm-vfp,armv6,armv6t2指令集。
到了android2.2:增加支持armv7-a指令集。
所以armeabi-v7a 應(yīng)該是與AIR限定支持android2.2以上的條件有關(guān)。android2.2以上能讓硬件發(fā)揮更大的作用。
我項(xiàng)目中使用armeabi還是armeabi-v7a
對于AIR項(xiàng)目來說性能問題是最大的瓶頸,能優(yōu)化一點(diǎn)就一點(diǎn),所以如果接平臺方SDK或者寫ANE的時(shí)候使用到SO庫,個(gè)人推薦全部放到armeabi-v7a下,而不要為了兼容放到armeabi。
原文:http://blog.csdn.net/tanranran/article/details/43234985
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的百度地图离线sdk java_百度地图SDK java.lang.UnsatisfiedLinkError: Couldn't load BaiduMapSDK...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaWeb关于工程运行的笔记
- 下一篇: OCP-052考试题库汇总(58)-CU