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