Android error in memcpy, in /lib/arm64/libfmod.so

I use FMOD low level API in my Android app. I updated it to add 64 bit libraries, so I updated FMOD to latest version (1.10.11).

Now I’m receiving hundreds of error reports (in my Google Play console) with only this information:

pid: 0, tid: 0 >>> com.mycompany.myapp <<< backtrace:
#00 pc 000000000001c3c8 /system/lib64/libc.so (memcpy+88)
#01 pc 000000000003dfe0 /data/app/com.mycompany.myapp/lib/arm64/libfmod.so

Top devices with this issue are:

  • OPPO A37f
  • OPPO A3s (CPH1803)
  • OPPO F9 (CPH1823)
  • HUAWEI Y6 2018 (HWATU-QG)
  • Galaxy S7 edge (hero2lte)
  • And many more…

Is this a known issue?

Unfortunately we aren’t able to tell anything meaningful from that information alone.
If you were able to reproduce this while using the logging version of FMOD, you would get a lot more information on the cause of the problem.

I know there is not enough information. I tried to reproduce it, but I’m not getting the error on any of my devices.

I decided to remove 64 bit fmod library from my Android app (32 bit fmod library is working with no errors), at least until it’s required by Google. Maybe then the error is fixed.

I added 64-bit libs to my project, and I’m receiving the same native error logs I pasted in my first post. I tried to reproduce the error, but I’m not able to do so.

Running Android ndk tool “addr2line” it turns out that the error is happening in the FMOD::getGlobals(FMOD::Global**) method. Does it give you any clue about what is happening?

Anybody can help please? :frowning:

If you can use the FMOD logging libraries (eg. libfmodL.so), you should get much better callstacks and logging.

Thank you. I can use logging libraries, but the problem is that I cannot reproduce the problem. I only receive crash logs through Google Play Developer Console. In Android, where are these logs generated? Can I capture and send them back to me?

By default FMOD will output to the device console, you can change this but only when using the logging libraries, via Debug_Initialize. But without being able to reproduce the issue it is a bit difficult to debug.

Thank you.

As you said, the problem is that I can’t reproduce the issue, so it’s very difficult to debug. Only a few users are having this problem, but I cannot contact them (I’m only receiving the error through Google Play Console).

So far, the only I know is that it’s happening with 64 bit version of FMOD, and in the FMOD::getGlobals(FMOD::Global**) method. The error is signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)