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用にクロスコンパイルされました。
  • バイナリには実行可能ビットが設定されています。
  • adbシェルから実行可能ファイルを実行できます。

ただし、上記のコードを実行すると、例外が発生します。

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 に答える