Hi @jeff_fmod , here are some clarifications:
- We were on an old FMOD version previously, I forget which one, but the crash was not present.
- We tried upgrading to the 2.02.12, which we put into production, and started getting the
java.lang.UnsatisfiedLinkError: No implementation found for void org.fmod.FMOD.OutputAAudioHeadphonesChanged()
- We reverted back to the previous version we were on and the crash was gone once again.
- Later, we were required by other factors to upgrade the NDK version our app uses. We upgraded it to the latest version, and this required us to also upgrade FMOD once again (the app would not compile otherwise). We upgraded the NDK to version 25.1.8937393
- We decided not to upgrade to the latest FMOD (2.02.13) because we knew that version caused this crash. We tried using 2.02.05 instead, thinking this thread indicated the crash was introduced in 2.02.06.
- The crash is happening in production still and affects many of our users.
I can provide other details if needed, thanks
EDIT: Actually, I just noticed that the version we were using in production was still 2.02.12. So I will try truly downgrading to 2.02.05 which will likely solve the problem, but I am hoping we can update to later versions soon, but we cannot until this bug is fixed.
Thank you for the additional information, and apologies for the delayed response.
That error means the libfmod.so/libfmodL.so library has not been loaded. Some possibilities I can think of:
If you could incorporate these queries into your telemetry that might provide more insights into the crash. Have you been able to reproduce this crash locally?
@jeff_fmod thanks for the response. We have not been able to reproduce the crash locally. That being said, about 1% of users are getting this crash in production. I guess it could be due to users side loading the app from elsewhere then Google Play.
I will add logs for the install source, as well as the comparisons of ABIs. I will also try preloading the libs as you suggested and report back!
Hello, we are experiencing this issue again.
2.02.27 C++ API, OpenSL, Android 9-15. Android 15 devices for example: vivo Y200e, Redmi Note 12 5G, Samsung Galaxy A04e.
You mentioned earlier that it should be fixed in Android 13, but I as we see it’s not.
Here is the stack trace:
* libc +0x088b78 __memcpy
* split_config.arm64_v8a.apk +0x13947c FMOD::Geometry::getUserData
* split_config.arm64_v8a.apk +0x0d3230 FMOD::SystemI::createDiskFile
* split_config.arm64_v8a.apk +0x150a2c Java_org_fmod_FMOD_OutputAAudioHeadphonesChanged
* libwilhelm +0x01c188 <unknown>
* libaudioclient +0x08af00 android::AudioTrack::processAudioBuffer
* libaudioclient +0x08a0f0 android::AudioTrack::AudioTrackThread::threadLoop
* libutils +0x0154d4 android::Thread::_threadLoop
* libandroid_runtime +0x0a4974 android::AndroidRuntime::javaThreadShell
* libutils +0x014db0 <unknown>
* libc +0x0f40c4 __pthread_start
* libc +0x08ed10 start_thread
Do you have any ideas about it?
Thanks in advance.
This looks like a different crash to me. Although there are no symbols to compare against, the libs should be accurate- the Android 13 crash occurs entirely on the OS side, whereas this crash is from OpenSL (libwilhelm) calling into your apk (split_config) and failing during a memcpy.
Unless you have some other lib in your apk that plays audio (such as a video player), the crash is most likely coming from FMOD’s OpenSL feeder thread, which would be unrelated to that Android 13 crash.
As for why OpenSL is crashing while the feeder thread is running, I think I’m going to need more information. Can you please tell me:
- Are you only getting this exact crash after updating to 2.02.27?
- What system are you using for your crash reporting?
- Are you seeing any crashes since updating that have libaaudio_internal in the call stack?
- How frequent is this crash, and can you reproduce it locally?