You are trying to integrate a prebuilt software, which was compiled against the NDK. That means it has a dependency on the NDK. The main problem is that you want to use those binaries while not providing the NDK.
As I explained earlier, the solution cannot be to include (parts of) the NDK with the fluidsynth prebuilt binaries. I don't know either, on which particular NDK-libs fluidsynth depends on. And I don't know about the NDK-libs dependencies among themselves either. Figuring that out is kind of a Sisyphean task. Ofc, one could just include two or three NDK libs as we did for the 2.2.0 binaries, but this is no sustaining solution as there is no guarantee that it will still work when compiled against a different NDK version. Thinking of the Windows binaries: we neither include the Windows SDK nor the C++ stdlib there either. So, for the moment, if you want to go that custom way, I have no other advice beyound the idea of figuring out which libs you need by using ldd. I don't speak Androidish either, never seen those errors, sry. I'm BCC'ing Atsushi, perhaps he has an idea of how to figure out all dependency libraries (Atsushi: Here's the beginning of the conversation: https://lists.nongnu.org/archive/html/fluid-dev/2021-12/msg00001.html ). Tom Mo., 3. Jan. 2022 - 14:19 Uhr, Leon Mortensen <l...@earmaster.com>: > > 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 _______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev