を使用してネイティブプロセスを起動しようとしている(そして失敗している)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
が実行可能ファイルにならないのはなぜですか?