более ранний ответ правильно объясняет проблему, с которой вы столкнулись. Это также открытый выпуск , поднятый в сентябре прошлого года и обсуждавшийся на форуме используемой вами библиотеки (из того, что я вижу в трассировке стека).
Решение для компиляции для SDK 29 состояло бы в том, чтобы прекратить помещать двоичные файлы в каталог / data / и убедиться, что они находятся в собственном каталоге libs. Этого нельзя достичь после того, как APK установлен и распакован на нерутированных устройствах, и это должно быть сделано правильно при подготовке проекта Android (например, с помощью настроек gradle), а также чтобы убедиться, что после установки содержимое становится правильным без упаковки: android:extractNativeLibs=true
.
В вашем случае этот код перемещает двоичные файлы, которые упакованы как «активы», в каталог данных пользователя:
https://github.com/WritingMinds/ffmpeg-android-java/blob/master/FFmpegAndroid/src/main/java/com/github/hiteshsondhi88/libffmpeg/FileUtils.java
Это из соображений безопасности запуск любых исполняемых файлов в месте, доступном для чтения / записи. Этот исходный код, на который я ссылался выше, нужно будет удалить, вместо этого нативные двоичные файлы, упакованные в / libs. Изменение является более безопасным, поскольку расположение / libs в каталоге установки вашего приложения является исполняемым, но недоступным для записи.
Таким образом, сторонняя библиотека должна решить эту проблему, или вы можете сделать это и отправить запрос на удаление. Или раскройте свой собственный и перекомпилируйте его для себя.
По-прежнему существует проблема, если ваше приложение действительно загружает контент после его установки и ожидает выполнения каких-либо загрузок. Сейчас это невозможно, насколько я могу судить по Android 10.
. Перспективное решение - прекратить использование внешних двоичных файлов и скомпилировать зависимости как проекты NDK. Им понадобятся jni-оболочки вокруг нативного кода (немного работы). Есть связанный проект Я знаю, что вы можете посмотреть.