-
Notifications
You must be signed in to change notification settings - Fork 175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Permission denied running version command when targeting Android Q #126
Comments
Looks like it's Q. If I build and run your sample app verbatim, it works, but when I change the compile and target SDK to be 29....crash. Same as I see in my app. So I think this looks to be a fairly high bug given Q will be released shortly. |
|
I have updated the Q emulator (now it is Actually, this is a documented change. The fix is to move ffmpeg from assets to jniLibs. |
Someone has solution to run ffmpeg commands in android Q its urgent?? |
Any updates on this? |
Hi,
to |
No, it still does not work |
Try this library |
@WassimErriha Thanks, it worked. |
Any updates on this? Or is this the end of this library? |
I found solution on this issue. exec() no longer works on files within the application home directory, it continues to be supported for files within the read-only /data/app directory. In particular, it should be possible to package the binaries into your application's native libs directory and enable android:extractNativeLibs=true, and then call exec() on the /data/app artifacts. A similar approach is done with the wrap.sh functionality, documented at https://developer.android.com/ndk/guides/wrap-script#packaging_wrapsh . It works well on my project(tested on Pixel 3a XL android Q) |
I have create jniLibs folder then move the lib from assets,but still not work, |
It's much more than simply renaming some folders, see #130 |
Why hasn't this been merged yet, even Android 11 is about be released, has this project been abandoned? |
Just change targetSdkVersion 29 to 28 in It worked for me. |
@pratikbutani not a solution that works on higher android versions |
@kibotu |
not working for me |
NOT WORKING FOR ME TOO. Have anyone found an answer to this problem? |
@SnehaDZ @aliraza96 if you can set targetSdkVersion less than 29, your app will continue to work even on Android 11 (a.k.a. Android R). Note that this does not prevent you from using the new Android Q APIs in your code. But if you want to switch to 29, you can try my fork. In the long run, I would recommend to switch to another library, even though this means that your code must be changed: with every upgrade, Android becomes less open to running executables in the context of an app. |
any update ? |
still unrepaired |
any update? |
We're using this library instead now, which is still maintained actively |
You can take a look on my approach on the original repo. I basically moved ffmpeg to the libs folder and renamed it to libffmpeg.so (should start with lib and end with .so in order for this to work). Then I added There is a problem with this though. You have to put the binaries 4 times in the apk (if you want an apk that supports all architectures). The only way to have the binaries 2 times is to build the apk for arm and x86 only (so it can use the x86 binary on x64 and arm binary for arm64). But then playstore wont let you upload your app because it doesn't have native x64 support. |
how can I move from assets to JNI libs? |
use this |
I tried this, ffmpeg -version hits onFailure. |
@plazar99 normally, the library loads its native part by itself. But your mileage may vary. |
I just rebuild it for sdktarget 28, no difference. I'm afraid I'm missing something fundamental here. |
I figured out my mistake. I followed the example provided,
2.use this => ffmpeg.execute(ffcommand, new FFcommandExecuteResponseHandler() { This fixed everything. |
How you moved ?? |
I didn't. I just used EpMedia Library. That is totally better than this.
It uses FFMPEG at it's backend. But it automatically handles all these cases
…On Fri, Aug 21, 2020, 12:52 PM Srinivas ***@***.***> wrote:
You can take a look on my approach
<cropsly/ffmpeg-android-java#361> on the
original repo. I basically moved ffmpeg to the libs folder and renamed it
to libffmpeg.so (should start with lib and end with .so in order for this
to work). Then I added android:extractNativeLibs = "true" to the manifest
so the binary is moved into data/app/{package_name}/lib/{arch}/, where it
can me executed on Android 10.
There is a problem with this though. You have to put the binaries 4 times
in the apk (if you want an apk that supports all architectures). The only
way to have the binaries 2 times is to build the apk for arm and x86 only
<cropsly/ffmpeg-android-java#361 (comment)>
(so it can use the x86 binary on x64 and arm binary for arm64). But then
playstore wont let you upload your app
<https://9to5google.com/wp-content/uploads/sites/4/2019/01/android-app-64-bit-requirement.png>
because it doesn't have native x64 support.
How you moved ??
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#126 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AOFC6OFEZPWIQNU5RVH2CA3SBYRTVANCNFSM4IHF5NJQ>
.
|
i didn't see any clear fixed please guide me to solve this issue. |
See #126 (comment) |
I gave up on this version of ffmpeg, I was able to get it working, but noticed that when running large number of ffmpeg (120) the number of failures were too much. I went back to the older version from writing minds, this gave me zero failures. |
@plazar99 but when you upload app on playstore you have to upgrade your tarketsdkversion to 29 thats the major issue. |
Facing this issue, have any one fixed it so far ? |
Here is the issue, only for android 10+ devices |
bravobits-ffmpeg works for on android 12 with target set to 28, no more permission denied froom ffmpeg after i added "-y" in the start of my every ffmpeg-command |
Not sure if it's because I am running Android Q beta, or I'm doing something wrong but I am getting the following:
2019-07-26 12:29:01.320 24329-24408/com.android.testffmpeg E/FFmpeg: Exception while trying to run: [/data/user/0/com.android.testffmpeg/files/ffmpeg, -version]
java.io.IOException: Cannot run program "/data/user/0/com.android.testffmpeg/files/ffmpeg": error=13, Permission denied
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050)
at nl.bravobit.ffmpeg.ShellCommand.run(ShellCommand.java:15)
All I am doing is calling this function:
`
private fun versionFFmpeg() {
FFmpeg.getInstance(TestFFmpegApplication.instance.applicationContext)
.execute(arrayOf("-version"), object : ExecuteBinaryResponseHandler() {
override fun onSuccess(message: String?) {
Timber.d(message)
}
`
The only setup I have in the code is this:
implementation 'nl.bravobit:android-ffmpeg:1.1.7'
Can anyone see what it is I am missing, or perhaps there is an issue running on Android Q?
The text was updated successfully, but these errors were encountered: