The stack traces are almost identical, so I am confident this is the exact same issue with Oboe on Android 12:
| Your stack trace | Known issue stack trace |
|---|---|
| android::AudioTrack::setVolume(float, float) | android::AudioTrack::setVolume(float, float) |
| aaudio::AudioStreamTrack::doSetVolume() | aaudio::AudioStreamTrack::doSetVolume() |
| aaudio::AudioStream::MyPlayerBase::playerSetVolume() | aaudio::AudioStream::MyPlayerBase::playerSetVolume() |
| android::PlayerBase::setVolume(float) | android::PlayerBase::setVolume(float) |
| android::media::BnPlayer::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int) | android::media::BnPlayer::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int) |
| android::BBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int) | android::BBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int) |
| android::IPCThreadState::executeCommand(int) | android::IPCThreadState::executeCommand(int) |
| android::IPCThreadState::getAndExecuteCommand() | android::IPCThreadState::getAndExecuteCommand() |
| android::IPCThreadState::joinThreadPool(bool) | android::IPCThreadState::joinThreadPool(bool) |
| - | android::PoolThread::threadLoop() |
| android::thread::_threadLoop(void*) | android::thread::_threadLoop(void*) |
| android::AndroidRuntime::javaThreadShell(void*) | android::AndroidRuntime::javaThreadShell(void*) |
Unfortunately because this is a bug with the Android audio APIs and not related to FMOD, we cannot do anything on our end to prevent this crash.