Caused by: java.lang.UnsatisfiedLinkError...解決經歷


Caused by: java.lang.UnsatisfiedLinkError: Couldn't load BaiduMapVOS_v2_1_3: findLibrary returned null
在使用百度地圖的時候碰到了這問題 網上搜了下各種方法 都不頂用 我想死的心都有了。。有沒有碰到過這問題的 求分享下經驗啊。。。。。。。。

后來看了百度地圖sdk的demo以后,是因為有一個文件 liblocSDK.so,必須放在 libs/armeabi 目錄下。將其對應的liblocSDK.so拷到相應的目錄下,問題完美解決了。問題是完美解決了,可這個liblocSDK.so文件是什么樣的東東了。后來查了一下資料以后:

so文件即是動態鏈接,在可執行文件裝載時或運行時,由操作系統的裝載程序加載庫。大多數操作系統將解析外部引用(比如庫)作為加載過程的一部分。在這些系統上,可執行文件包含一個叫做import   directory的表,該表的每一項包含一個庫的名字。根據表中記錄的名字,裝載程序在硬盤上搜索需要的庫,然后將其加載到內存中預先不確定的位置,之后根據加載庫后確定的庫的地址更新可執行程序。可執行程序根據更新后的庫信息調用庫中的函數或引用庫中的數據。這種類型的動態加載成為裝載時加載   ,被包括Windows和Linux的大多數系統采用。裝載程序在加載應用軟件時要完成的最復雜的工作之一就是加載時鏈接。  即相當於windows的dll文件。你連一個程序的dll文件沒有了,你程序肯定跑不起來。

通過此次經歷,我對相應的so文件有了一個深刻的認識。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM