[問題]環境變數和執行檔無法執行問題

看板AndroidDev作者 (燃燒吧,小宇宙!!!)時間13年前 (2011/05/30 13:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/5 (看更多)
開發層: (應用/框架/庫/核心) 應用,框架 問題: 我用了我修改的模擬器(我的模擬器改了什麼,請詳見補充說明(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)
文章代碼(AID): #1Dup7D_F (AndroidDev)
文章代碼(AID): #1Dup7D_F (AndroidDev)