我正在使用 FFMPEG 库在视频上获取水印戳。当我的项目的目标 SDK 版本为 28 时,它在所有版本中都像魅力一样工作,但是当我将目标 SDK 版本设置为 29 时,它给了我以下异常。
E/FFmpeg:尝试运行时出现异常:[Ljava.lang.java.io.IOException:无法“/data/user/0/com.videowatermark.addtextandtimestampongalleryvideos/files/ffmpeg”:错误=13,权限被拒绝
原因:java.io.IOException:error=13,在 java.lang.UNIXProcess.(UNIXProcess.java:133) 在 java.lang.ProcessImpl.start( ProcessImpl.java:141) 在 java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) 在 java.lang.Runtime.exec(Runtime.java:698) 在 java.lang.Runtime.exec(Runtime.java:563 ) 在 com.github.hiteshsondhi88.libffmpeg.ShellCommand.run(ShellCommand.java:10) 在 com.github.hiteshsondhi88.libffmpeg.FFmpegExecuteAsyncTask.doInBackground(FFmpegExecuteAsyncTask.java:38) 在 com.github.hiteshsondhi88.libffmpeg.FFmpegExecuteAsyncTask。 doInBackground(FFmpegExecuteAsyncTask.java:10) at android.os.AsyncTask$3.call(AsyncTask.java:378) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at android.os.AsyncTask$SerialExecutor$1 .run(AsyncTask.java:289) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja va:641) 在 java.lang.Thread.run(Thread.java:919)
//显示这个错误
最佳答案
Android Api 29 及更高版本删除了应用主目录的执行权限。
以 Android 10 为目标的应用无法对应用主目录中的文件调用 exec()
Details in the following link
不幸的是,我没有找到解决问题的方法。
关于android - 设置项目的目标 SDK 版本 29(Android Q 问题)时,FFMPEG 命令不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58479616/