java.io.ioexception.Runtime.getRuntime()。EXEC()。 android中的环境和工作目录null错误

时间:2012-10-20 05:25:06

标签: java android android-ndk ffmpeg java-native-interface

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中,它有一些问题。

4 个答案:

答案 0 :(得分:3)

i get environment and working directory null

它将返回null,因为没有/mmt/sdcard之类的路径而是使用/mnt/sdcard

enter image description here

最好使用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。它可以更轻松地解析命令行选项。