0

我有一个 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 交叉编译的。
  • 二进制文件确实设置了可执行位。
  • 我可以从adbshell 运行可执行文件。

但是,在运行上面的代码时,我得到一个异常:

运行 exec() 时出错。命令:[/data/data/com.me.myapp/files/myexec, param1,
  param2] 工作目录:/data/data/com.me.myapp/files/somedir ...

为什么我的应用程序不能exec执行?

4

1 回答 1

1

哇 - 在我发现我做错了什么之前问这个问题只花了大约 2 分钟。

问题只是工作目录在运行之前不存在exec

于 2013-03-24T07:27:48.823 回答