[問題]環境變數和執行檔無法執行問題
開發層: (應用/框架/庫/核心)
應用,框架
問題:
我用了我修改的模擬器(我的模擬器改了什麼,請詳見補充說明(2)),執行我寫的apk
,遇到如下問題:
透過adb shell登入模擬器,然後直接下: /data/data/我的apk路徑/額外執行的
執行檔,是可以正常執行的;但透過apk去run此執行檔,卻會有如下的錯誤:
link image[1995]:failed to link /data/data/我的apk路徑/額外執行的執行檔
Can't LINK EXECUTABLE
我猜這個錯誤應該是apk去執行我要的執行檔時,沒有讀到執行檔需要的lib所造成的
,所以想知道:要如何修改透過apk去run執行檔時,參考到的lib path? 或是有其他種方
式可以run我的執行檔
補充說明:
(1) 我的apk需要額外run的一個執行檔(我在java透過runtime這個class來執行我
要run的執行檔),這個執行檔會需要額外的lib,我將額外需要的lib都放在
/data/data/我的apk路徑/lib
(2) 因此,我修改了android source中的init.rc,針對LD_LIBRARY_PATH這個環境
變數多了一個自己要搜尋的lib路徑。
修改如下:
export LD_LIBRARY_PATH /system/lib:/data/data/我的apk路徑/lib/
然後重新編譯模擬器的映像檔來供我使用
(3) 分別試過以下兩種方式(java和C這兩種不同的level去執行),但都無法成功
執行我的執行檔:
A. Runtime搭配Process和DataOutputStream這幾個class去執行我的執行檔
=> 透過java層來執行
B. Runtime搭配Process和DataOutputStream這幾個class先去執行一個
"執行檔A",然後這個"執行檔A"再利用system()或是execl()去執行我
的執行檔
=> 透過C去執行
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.105.31.75
※ 編輯: chrisben 來自: 59.105.31.75 (05/30 13:58)
※ 編輯: chrisben 來自: 59.105.31.75 (05/30 16:48)
※ 編輯: chrisben 來自: 59.105.31.75 (05/30 17:06)
討論串 (同標題文章)
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章