作者chrisben (燃烧吧,小宇宙!!!)
看板AndroidDev
标题[问题]环境变数和执行档无法执行问题
时间Mon May 30 13:57:31 2011
开发层: (应用/框架/库/核心)
应用,框架
问题:
我用了我修改的模拟器(我的模拟器改了什麽,请详见补充说明(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)