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)
最近在做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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.