Android加載動態庫不成功處理方法

首頁,感謝你的閱讀,本人觀點:學習編程是個漫長的過程並不是一時就會很厲害的,關鍵是堅持,快樂地學習,在這裏分享我的一些筆記給你;
  最近在做Android上的多媒體開發,通過JNI接口調用各種底層庫,例如:lib***.so

  如下所示,總是加載不成功。調試發現,每次加載so庫,會跳到catch異常處理部分,然後打印異常log信息。

  1.static{

  2. try{

  3. System.load("/data/data/com.***/lib/lib***.so");

  4. }

  5. catch(UnsatisfiedLinkError ulink){

  6. Log.i("HVnative====","Can not load library");

  7. ulink.printStackTrace();

  8. }

  9.}

  發現網上可以用arm-none-linux-gnueabi-ld工具分析這個動態庫,在ubuntu 10.04上安裝arm-none-linux-gnueabi-gcc

  方法參考文檔:

  http://blog.csdn.net/satiling/article/details/6914466

  找到 arm-none-linux-gnueabi-ld執行程序,添加到系統環境變量:

  1.vim /root/.bashrc

  2.PATH=$PATH:絕對路徑

  3.source /root/.bashrc 使環境變量立即生效,分析工具搞定!

  如果“undefined reference to” 後面打印的函數是:

  1、你自己寫的函數,那麼你應該去檢查自己所寫的這段代碼有何問題,修改之後,再重新編譯底層庫;

  2、系統函數,暫時還沒找到合適的解決辦法,自己上網度狗吧,正在努力尋求方法。
知識就是力量,別人學用知識來賺錢的成本低,在達內學習到編程是鑄造夢想的地方,如果你喜歡編程,這裏,有我們共同語言,共同的故事,共同的夢想!
(責任編輯:廣州達內http://tarena3g.com.cn)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章