File dir = new File("/mnt/sdcard");
Process process = Runtime.getRuntime().exec("ffmpeg -f image2 -i img%4d.png video.mp4", null, dir);
Androidでこの行を試すと、Androidで環境と作業ディレクトリのnullエラーが発生します。しかし、Javaでその行を試すと、完全に機能しましたが、Androidでは問題があります。
File dir = new File("/mnt/sdcard");
Process process = Runtime.getRuntime().exec("ffmpeg -f image2 -i img%4d.png video.mp4", null, dir);
Androidでこの行を試すと、Androidで環境と作業ディレクトリのnullエラーが発生します。しかし、Javaでその行を試すと、完全に機能しましたが、Androidでは問題があります。
i get environment and working directory null
/mmt/sdcard
代わりにを使用するようなパスがないため、nullを返します/mnt/sdcard
。
を使用するのが最適ですEnvironment.getExternalStorageDirectory()
。
EmulatorまたはDeviceのいずれかにE:のようなドライブがないためです 。
このようにAndroidでPCのドライブにアクセスすることはできません。
編集 :
File dir = Environment.getExternalStoragePublicDirectory();
File f = new File(dir."Yourfilename.png");
Androidのセキュリティでは、SDカードまたはUSBメモリから実行可能ファイルを起動することはできません。
実行可能ファイルは、アプリのfiles/ディレクトリまたはグローバルに書き込み可能な/data /local/ディレクトリにデプロイできます。忘れないでくださいchmod 777
!
usungの代わりにexec( "dir / cmd")exec("cmd", env, new File("dir"))
を呼び出します
AndroidにはおそらくEドライブがありませんが、実際には保証できます。Android には Linux オペレーティング システムがあり、同じドライブ命名規則を使用していません。また、プロセスを生成するコードを記述するときは常にProcessBuilderを使用することを検討します。コマンドラインオプションの解析が簡単になります。