FFMPEG命令在设置项目的目标SDK版本为29时不起作用(Android Q问题)

5
我正在使用FFMPEG库在视频上获取水印戳。当我的项目的目标SDK版本是28时,所有版本都可以正常工作,但是当我设置目标SDK版本为29时,它会给我以下异常: E/FFmpeg: 尝试运行时出现异常:[Ljava.lang.java.io.IOException: 无法“/data/user/0/com.videowatermark.addtextandtimestampongalleryvideos/files/ffmpeg”:错误=13,权限被拒绝 Caused by: java.io.IOException: 错误=13,权限被拒绝 at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.(UNIXProcess.java:133) at java.lang.ProcessImpl.start(ProcessImpl.java:141) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) at java.lang.Runtime.exec(Runtime.java:698) at java.lang.Runtime.exec(Runtime.java:563) at com.github.hiteshsondhi88.libffmpeg.ShellCommand.run(ShellCommand.java:10) at com.github.hiteshsondhi88.libffmpeg.FFmpegExecuteAsyncTask.doInBackground(FFmpegExecuteAsyncTask.java:38) at 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) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919) //显示此错误

当我选择视频进行加盖过程并且传递FFMPEG命令时,它会产生异常。 - SAVALIYA REENA
是的,我已经检查过了,我可以获取视频URI,但我只在Android Q上遇到问题。 - SAVALIYA REENA
没有官方的文件。 - Vinesh Chauhan
Android Q需要哪种类型的权限?我正在获取读写存储权限,是否有新的权限适用于Android Q? - SAVALIYA REENA
这个有更新了吗? - Kartik Garasia
显示剩余5条评论
1个回答

0

Android Api 29及以上版本已删除应用程序主目录的执行权限。针对Android 10的应用程序无法在其主目录中调用exec()。

以下链接中有详细信息

不幸的是,我没有找到解决问题的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接