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中,它有一些问题。
答案 0 :(得分:3)
i get environment and working directory null
它将返回null,因为没有/mmt/sdcard
之类的路径而是使用/mnt/sdcard
。
最好使用Environment.getExternalStorageDirectory()
。
答案 1 :(得分:2)
因为模拟器或设备中没有 E:等驱动器。
你无法在Android中访问你PC上的任何驱动器。
编辑:
File dir = Environment.getExternalStoragePublicDirectory();
File f = new File(dir."Yourfilename.png");
答案 2 :(得分:1)
Android安全性不允许从sdcard或usb内存启动可执行文件。
您可以在应用 files / 目录或全局可写 / data / local / 目录中部署可执行文件。别忘了chmod 777
!
而不是usung exec("cmd", env, new File("dir"))
调用 exec(“dir / cmd”)
答案 3 :(得分:0)
Android可能没有E盘,事实上我可以保证。 Android有一个linux操作系统,并没有使用相同的驱动器命名约定。另外,每当编写产生进程的代码时,我会考虑使用ProcessBuilder。它可以更轻松地解析命令行选项。