fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] Fluidsynth Android binaries - fluidsynth-2.2.4-android24


From: Leon Mortensen
Subject: Re: [fluid-dev] Fluidsynth Android binaries - fluidsynth-2.2.4-android24.zip has changed a lot compared to fluidsynth-2.2.0-android.zip
Date: Mon, 3 Jan 2022 14:19:53 +0100
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.4.1

Happy New Year everyone, and thanks for your reply, Tom.

Yes, I'm using Android API Level 30, but as s mentioned the App is not build using Android Studio, and there's no LD_LIBRARY_PATH to be set

I've tried following you advice to investigate what libraries are missing by running the ldd libfluidsynth.so from a shell.
I tried both a terminal emulator on the device, and the adb shell command with similar results. Note ldd seems to require an absolute path. I've copied the libfluidsynth files to the Documents folder on the device and then called 

ldd /storage/emulated/0/documents/libfluidsynth.so

I get the following error message
error: couldn't map "/storage/emulated/0/Documents/libfluidsynth.so" segment 0: Permission denied

I'd really appreciate any help here. I have no idea how to proceed, and my Android skills in this area are very limited
Any chance someone could make a list of ndk library files needed, or the consider a version of the release binaries that includes the needed files like it was in the past?

Thanks, Leon

On 12/18/2021 12:08 AM, Tom M. wrote:
I assume you're at least using Android API Level 24.

In this case, yes, it could be due to missing .so libs. The
precompiled binaries from 2.2.0 basically included many libraries from
the NDK. I considered this bad practice, as I assumed that the NDK
will be available anyway in the target environment and this in turn
would conflict with our provided NDK libs. Esp when different NDK
versions are involved. Since I restructured our Android CI Build
Pipeline after 2.2.0, I changed this and only included the libs that
were created when cross compiling fluidsynth.

Because fluidsynth depends on the NDK r21 (since it was compiled
against it), I suggest you make this or a newer version available in
your target environment. To my knowledge, Android Studio would
actually ensure that the NDK is present. But you should be able do
this also manually, e.g. by setting LD_LIBRARY_PATH correctly.

You could also figure out which libraries are missing by getting a
shell via the Android emulator or somehow, and use e.g.

ldd libfluidsynth.so

to see what .so files fluidsynth depends on. E.g. you should see that
you'll need libc++_shared.so from the NDK. And then you can
cherry-pick only the required NDK libs for your custom setup.

Tom

reply via email to

[Prev in Thread] Current Thread [Next in Thread]