我有一个 Android 应用程序正在尝试(但失败)使用ProcessBuilder
. 这是我所拥有的:
String[] args = {"/data/data/com.me.myapp/files/myexec", "param1", "param2"};
Process process = new ProcessBuilder(args)
.directory(new File("/data/data/com.me.myapp/files/somedir"))
.start();
process.waitFor();
(注意:出于本示例的目的,我已经对路径进行了硬编码。真正的应用程序应该使用Context.getFilesDir()
.)
这里有几点需要注意:
- 该可执行文件是使用 NDK 为 ARMv6 交叉编译的。
- 二进制文件确实设置了可执行位。
- 我可以从
adb
shell 运行可执行文件。
但是,在运行上面的代码时,我得到一个异常:
运行 exec() 时出错。命令:[/data/data/com.me.myapp/files/myexec, param1, param2] 工作目录:/data/data/com.me.myapp/files/somedir ...
为什么我的应用程序不能exec
执行?