Crash: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR) in libalmixer.so

Just to jump in here, @Rob I have this crash lots (mainly on Android < 8).

Every so often the sim refuses to load any audio file and I assume the two are related.

I get 50+ of these per day and it really need sorting.  Always in libopenal.so or libalmixer.so.

Any updates on this??

Is there a repro on a crash? Honestly, crash logs are not very useful in most of the cases. Do you see it happening when you’re testing your app?

Hello Vlads, no we cant reproduce the crash. We tried in several devices but have no luck. Now, our app is rated with bad behaviour in play store basically because of this error. So please we need help to resolve it.

Thanks.

Capture.png

Hello again, do you have any update about this problem? Seriously guys, we need to fix it because is hitting our ranking in play store.

If you think that there is no way to fix it, we need to know it to move forward to another game engine.

So please let me know if you are still looking for an answer or you are not working on it anymore.

Thanks.

Hello! This crash proved to be extremely hard to reproduce. It is caused by some audio related things. Only thing I can suggest for now is to try out audio2 subsystem. Just place this line as first line in your main.lua:

al = nil; if audio2 then audio=audio2; print("=====\>\> Using audio2 \<\<=====") end

Note, this is much simpler audio system, and doesn’t have OpenAL capabilities. Make sure to test your game on android device after trying it out. Note, audio2 is available only on actual devices.

Given it’s a SIGSEGV, and it doesn’t happen all the time, make sure you don’t have some conditional or race condition where you’re removing a scene or audio object that has an onComplete listener attached to it. I had a similar issue in a project years ago and I wasn’t stopping an onComplete listener, removing the scene so the function the listener called didn’t exist any more, but the audio was still trying to call nothing and BOOM Single 11, Segment violation.

There is also the very real possibility that this is related to a similar issue deep in the OpenAL library and outside of anything we can catch. Perhaps some audio decoder on some variant of a device driver that OpenAL is trying call on that user’s device is borked and it’s beyond our ability to fix. This seems like the more likely combination and @vlad’s suggestion to try audio2 makes sense. 

I know I’ve suggested this before and people say they’ve tried it but “it doesn’t work”, well if it doesn’t work, let us know. audio2 is new and a cleaner implementation so it’s easier for us to fix problems in our control in audio2 than audio due to it’s dependence on OpenAL which we have no control over.

Rob

Rob/Vlads, two months ago you already suggested to try using audio2. But when we tried no all sounds plays in the app and sometimes we have 2 secs of delay between the play call in code and the start of sound in device.

If you see the entire thread you will see my response.

We will do another code review trying to find som case like you described in oncomplete handler.

Regards.

audio2 should work. There are quite a few people who tried it and used it it. I seem to remember you saying it didn’t work, but I’d rather spend time trying to get audio2 working for you than fight something we can’t see.

Rob

I have de same error. Using corona sdk 2019.3457. This is my stack trace in play console:

id: 0, tid: 0 \>\>\> com.blackbean.tinypuzzle \<\<\< backtrace: #00 pc 00000000000071c0 /data/app/com.blackbean.tinypuzzle-2/lib/arm/libalmixer.so #01 pc 000000000000a3e5 /data/app/com.blackbean.tinypuzzle-2/lib/arm/libalmixer.so (ALmixer\_PlayChannelTimed+48) #02 pc 0000000000130c50 /data/app/com.blackbean.tinypuzzle-2/lib/arm/libcorona.so #03 pc 000000000010f2b8 /data/app/com.blackbean.tinypuzzle-2/lib/arm/libcorona.so #04 pc 000000000000cc1c /data/app/com.blackbean.tinypuzzle-2/lib/arm/liblua.so #05 pc 000000000001ce30 /data/app/com.blackbean.tinypuzzle-2/lib/arm/liblua.so #06 pc 000000000000d068 /data/app/com.blackbean.tinypuzzle-2/lib/arm/liblua.so #07 pc 000000000000c374 /data/app/com.blackbean.tinypuzzle-2/lib/arm/liblua.so #08 pc 000000000000d1e0 /data/app/com.blackbean.tinypuzzle-2/lib/arm/liblua.so #09 pc 00000000000055b8 /data/app/com.blackbean.tinypuzzle-2/lib/arm/liblua.so (lua\_pcall+88) #10 pc 00000000001072e8 /data/app/com.blackbean.tinypuzzle-2/lib/arm/libcorona.so #11 pc 000000000009d000 /data/app/com.blackbean.tinypuzzle-2/lib/arm/libcorona.so #12 pc 00000000000fcda4 /data/app/com.blackbean.tinypuzzle-2/lib/arm/libcorona.so #13 pc 00000000000fdb3c /data/app/com.blackbean.tinypuzzle-2/lib/arm/libcorona.so #14 pc 0000000000142758 /data/app/com.blackbean.tinypuzzle-2/lib/arm/libcorona.so #15 pc 000000000002cc0c /data/app/com.blackbean.tinypuzzle-2/lib/arm/libcorona.so #16 pc 0000000000b9f7b7 /data/app/com.blackbean.tinypuzzle-2/oat/arm/base.odex

Build Settings:

settings = { build = { neverStripDebugInfo = true, }, orientation = { -- Supported values for orientation: -- portrait, portraitUpsideDown, landscapeLeft, landscapeRight default = "landscapeLeft", supported = { "landscapeLeft", "landscapeRight"}, }, splashScreen = { ios = { enable = false }, android = { enable = false } }, -- -- Android section -- android = { usesPermissions = { "android.permission.INTERNET", "android.permission.ACCESS\_NETWORK\_STATE", "com.android.vending.BILLING", }, largeHeap = true, }, -- -- iOS section -- iphone = { xcassets = "Images.xcassets", plist = { UIStatusBarHidden = false, UILaunchStoryboardName = "LaunchScreen", }, }, -- -- Plugins section -- plugins = { ["plugin.admob"] = { publisherId = "com.coronalabs" }, ["plugin.googleAnalytics"] = { publisherId = "com.coronalabs" }, ["plugin.google.iap.v3"] = { publisherId = "com.coronalabs" }, }, -- -- Project section -- excludeFiles = { -- Exclude unnecessary files for each platform ios = { "Icon.png", "Icon-\*dpi.png", "iconosOriginales", "iconosNavidad", "intro/navidad", "gameMode/navidad"}, android = { "Icon.png", "Icon-??.png", "Icon-???.png", "LaunchScreen.storyboardc", "intro/navidad", "iconosOriginales", "iconosNavidad", "gameMode/navidad" }, }, }

Thanks!

Hello everyone can you check this issue? Any idea on what is going on?

Thanks!

We all have this… it needs fixing.

It also causes wakelocks in AudioMix.

Both cause issues.

Thanks SGS, there is any workaround to avoid this error?

About the only immediate thing I can think for you to try is to switch to the audio2 library and see if that solves the problem.

if audio2 then &nbsp; &nbsp; audio=audio2; &nbsp; &nbsp; al=nil;&nbsp; &nbsp; &nbsp; print("=====\>\>&nbsp; &nbsp;Using audio2!!!&nbsp; &nbsp;\<\<=====") end

Note this works on Android builds only. The simulator will return nil for audio2 regardless of the skin selected. There is no al.* library with audio2, so we nill that out. You need to test thoroughly because once we addressed the common issues with OpenAL, we didn’t feel the need to pursue audio2.* any longer. But it may address your specific issue.

It’s also likely that you’re doing something specific in your code that’s causing this. A SIGSEGV/signal 11 is a segmentation fault which is Unix/Linux lingo saying that you’ve tried to access a memory location you are not allowed to access. This can commonly happen when you try to reference a resource that was deleted. I’ve seen it happen when you have an enterFrame listener running, forget to delete it, change scenes and then remove the scene. Then the enterFrame listener tries to call a function that was deleted when the scene was removed.

In the OpenAL case, perhaps you have an onComplete() triggering that’s trying to call a function in a scene that no longer exists. I can see this happening when you play a sound, change a scene, forget to stop the sound and then remove the scene. The onComplete triggers to a function that no longer exists.

Of course, its possible too since it doesn’t happen on all devices is that a bad audio decoder has shipped with some device.

Rob

To be fair Rob, no Corona code should ever cause a crash. The framework should always do a null check.

In my experience it is more likely to be device dependant - seemingly Android 6 is by far the worst culprit with these things.

I’m guessing what we are all asking for is some hardening in core to ensure these crashes don’t happen because there isn’t much we can do in our code to stop them.

You know my use case and that I only have a single scene and I can tell you for a fact that these errors happen even with just a single looping MP3.

Maybe this can help, the day when we start to notice this errors we released a version with some modifications in sounds usage based on the recomendations from another topic.

Here is the other topic: https://forums.coronalabs.com/topic/74589-signal-11-sigsegv-code-1-segv-maperr-libopenalso/#entry393417

Now we are using a a global class where the sounds are loaded at the begining of the program, and then we use this sounds along the entire app.

Here is the code of this global.lua file:

local M = {} print("LOADING SOUNDS !!!!!!!!!!!!!!!!!!!!!!!!!") local backgroundMusic = audio.loadStream( "sounds/menu-music.mp3" ) local tickSound = audio.loadSound( "sounds/tick.mp3" ) local function playLoadedSound(soundStream, audioPlayedHandler) local ch = audio.findFreeChannel(8) audio.setVolume( M.fxVolume, { channel=ch } ) audio.play( soundStream, { channel=ch, onComplete = audioPlayedHandler} ) end local function playMenuMusic() if( not audio.isChannelPlaying(1)) then print("MUSIC NOT PLAYING") print("MUSIC VOLUME " .. M.musicVolume) audio.setVolume( M.musicVolume, { channel=1 } ) audio.play( backgroundMusic, { channel=1, loops=-1 } ) end end local function stopMenuMusic() if( audio.isChannelPlaying(1)) then audio.fadeOut( backgroundMusic, { channel=1, time=200 } ) end end local function playTickSound() if(M.fxVolume \> 0) then playLoadedSound(tickSound) end end M.playMenuMusic = playMenuMusic M.stopMenuMusic = stopMenuMusic M.playTickSound = playTickSound return M

Later on every scene, we use this global file like this:

local composer = require( "composer" ) local scene = composer.newScene() local global = require("global") local function goToPuzzle() global.playTickSound() global.stopMenuMusic() end --here is the scene code

So, we changed one error by another? Or maybe misunderstood the way to use the sounds?

Thanks guys!

Let me comment on a few things:

local M = {} print("LOADING SOUNDS !!!!!!!!!!!!!!!!!!!!!!!!!") local backgroundMusic = audio.loadStream( "sounds/menu-music.mp3" ) local tickSound = audio.loadSound( "sounds/tick.mp3" ) local function playLoadedSound(soundStream, audioPlayedHandler) local ch = audio.findFreeChannel(8) -- you don't test to see if audio.findFreeChannel() returned a valid channel or not. -- it's possible ch = 0 here which would be the master volume. -- -- next M.fxVolume is undefined. It should be a value of 0.0 to 1.0. I don't see where -- you're ever setting it. audio.setVolume( M.fxVolume, { channel=ch } ) -- -- You don't test that soundStream is a valid handle. If audio.loadSound() or audio.loadStream() -- fails this will likely be nil, and audio.play() is expecting a sound handle. You should -- test this: if soundStream then ... -- -- Again, channel could be 0 here. If it's zero, it should select a channel for you. -- -- You never pass an audioPlayedHandler to this function so you're always calling this with -- onComplete = nil. That should be no harm, but in case something isn't hardened further -- down the line, trying to play nil could SIGSEGV. audio.play( soundStream, { channel=ch, onComplete = audioPlayedHandler} ) end local function playMenuMusic() -- -- You want to play the music on channel 1. I don't see where you're even trying to call -- this function, but if your tick sound is playing, it could be on channel 1 which could -- cause this to not play -- -- I don't see where you're setting M.musicVolume, so you could be trying to set it on a nil -- channel value. if( not audio.isChannelPlaying(1)) then print("MUSIC NOT PLAYING") print("MUSIC VOLUME " .. M.musicVolume) audio.setVolume( M.musicVolume, { channel=1 } ) audio.play( backgroundMusic, { channel=1, loops=-1 } ) end end local function stopMenuMusic() if( audio.isChannelPlaying(1)) then audio.fadeOut( backgroundMusic, { channel=1, time=200 } ) end end -- M.fxVolume could be nil. local function playTickSound() if(M.fxVolume \> 0) then playLoadedSound(tickSound) end end M.playMenuMusic = playMenuMusic M.stopMenuMusic = stopMenuMusic M.playTickSound = playTickSound return M

Generally speaking, if you’re going to play audio on a specific channel, i.e. music on channel 1, I generally want to reserve channels, so they will be taken out of the auto channel selection pool. See audio.reserveChannels().

Rob

Hy Rob thsnks for your response, we made som changes on our code based on the recomedations that you made and released a new version. Now we have something like this:

local M = {} local backgroundMusic = audio.loadStream( "sounds/menu-music.mp3" ) local tickSound = audio.loadSound( "sounds/tick.mp3" ) audio.reserveChannels( 2 ) -- Background music uses channel 1, we reserve two channels local menuMusicChannel = 1 --the properties M.fxVolume and M.musicVolume are setted at start of the game and never have nil value local function playLoadedSound(soundStream, audioPlayedHandler) if(soundStream ~= nil) then local ch if(audioPlayedHandler == nil) then ch = audio.play( soundStream ) else ch = audio.play( soundStream, { onComplete = audioPlayedHandler} ) end if(ch \> 0) then audio.setVolume( M.fxVolume, { channel=ch } ) return ch end end end local function playLoadedMusic(soundStream, audioPlayedHandler, loops) if(soundStream ~= nil) then if(loops == nil) then loops = 0 end local ch if(audioPlayedHandler == nil) then ch = audio.play( soundStream , { loops = loops}) else ch = audio.play( soundStream, { onComplete = audioPlayedHandler, loops = loops} ) end if(ch \> 0) then audio.setVolume( M.musicVolume \* 0.8, { channel=ch } ) return ch end end end

So, now we are checking for nil values at soundstream, handler for oncomplete and also checking the assigned channel where the sound was played.

But still having the same errors and the same crash rate.

Here are the details that we have at play store:

This is our top error at list, with the highest crash rate, the others have the same error message but i dont know if they are the same or different errors.

backtrace: #00 pc 00000000000071c0 /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/libalmixer.so #01 pc 000000000000a3e5 /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/libalmixer.so (ALmixer\_PlayChannelTimed+48) #02 pc 0000000000130c50 /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/libcorona.so #03 pc 000000000010f2b8 /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/libcorona.so #04 pc 000000000000cc1c /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/liblua.so #05 pc 000000000001ce30 /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/liblua.so #06 pc 000000000000d068 /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/liblua.so #07 pc 000000000000c374 /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/liblua.so #08 pc 000000000000d1e0 /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/liblua.so #09 pc 00000000000055b8 /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/liblua.so (lua\_pcall+88) #10 pc 00000000001072e8 /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/libcorona.so #11 pc 000000000009d000 /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/libcorona.so #12 pc 00000000000fcda4 /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/libcorona.so #13 pc 00000000000fdb3c /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/libcorona.so #14 pc 0000000000142758 /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/libcorona.so #15 pc 000000000002cc0c /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/lib/arm/libcorona.so #16 pc 0000000000086b05 /data/app/com.blackbean.tinypuzzle-X4b3i\_vRahfC\_kPGS0yINg==/oat/arm/base.odex

backtrace: #00 pc 00000000000071c0 /data/app/com.blackbean.tinypuzzle-1/lib/arm/libalmixer.so #01 pc 000000000000a3e5 /data/app/com.blackbean.tinypuzzle-1/lib/arm/libalmixer.so (ALmixer\_PlayChannelTimed+48) #02 pc 0000000000130c50 /data/app/com.blackbean.tinypuzzle-1/lib/arm/libcorona.so #03 pc 000000000010f2b8 /data/app/com.blackbean.tinypuzzle-1/lib/arm/libcorona.so #04 pc 000000000000cc1c /data/app/com.blackbean.tinypuzzle-1/lib/arm/liblua.so #05 pc 000000000001ce30 /data/app/com.blackbean.tinypuzzle-1/lib/arm/liblua.so #06 pc 000000000000d068 /data/app/com.blackbean.tinypuzzle-1/lib/arm/liblua.so #07 pc 000000000000c374 /data/app/com.blackbean.tinypuzzle-1/lib/arm/liblua.so #08 pc 000000000000d1e0 /data/app/com.blackbean.tinypuzzle-1/lib/arm/liblua.so #09 pc 00000000000055b8 /data/app/com.blackbean.tinypuzzle-1/lib/arm/liblua.so (lua\_pcall+88) #10 pc 00000000001072e8 /data/app/com.blackbean.tinypuzzle-1/lib/arm/libcorona.so #11 pc 000000000009d000 /data/app/com.blackbean.tinypuzzle-1/lib/arm/libcorona.so #12 pc 00000000000fcda4 /data/app/com.blackbean.tinypuzzle-1/lib/arm/libcorona.so #13 pc 00000000000fdb3c /data/app/com.blackbean.tinypuzzle-1/lib/arm/libcorona.so #14 pc 0000000000142758 /data/app/com.blackbean.tinypuzzle-1/lib/arm/libcorona.so #15 pc 000000000002cc0c /data/app/com.blackbean.tinypuzzle-1/lib/arm/libcorona.so #16 pc 000000000046534b /data/dalvik-cache/arm/data@app@com.blackbean.tinypuzzle-1@base.apk@classes.dex

backtrace: #00 pc 00000000000071c0 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/libalmixer.so #01 pc 000000000000a3e5 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/libalmixer.so (ALmixer\_PlayChannelTimed+48) #02 pc 0000000000130c50 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/libcorona.so #03 pc 000000000010f2b8 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/libcorona.so #04 pc 000000000000cc1c /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/liblua.so #05 pc 000000000001ce30 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/liblua.so #06 pc 000000000000d068 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/liblua.so #07 pc 000000000000c374 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/liblua.so #08 pc 000000000000d1e0 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/liblua.so #09 pc 00000000000055b8 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/liblua.so (lua\_pcall+88) #10 pc 00000000001072e8 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/libcorona.so #11 pc 000000000009d000 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/libcorona.so #12 pc 00000000000fcda4 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/libcorona.so #13 pc 00000000000fdb3c /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/libcorona.so #14 pc 0000000000142758 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/libcorona.so #15 pc 000000000002cc0c /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/lib/arm/libcorona.so #16 pc 00000000000465e5 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/oat/arm/base.odex (com.ansca.corona.JavaToNativeShim.nativeMultitouchEventAdd [DEDUPED]+180) #17 pc 000000000006d97d /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/oat/arm/base.odex (com.ansca.corona.JavaToNativeShim.touchEvent+396) #18 pc 00000000000838ed /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/oat/arm/base.odex (com.ansca.corona.input.RaiseTouchEventTask.executeUsing+68) #19 pc 000000000006b29b /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/oat/arm/base.odex (com.ansca.corona.CoronaRuntimeTaskDispatcher$TaskEvent.Send+106) #20 pc 000000000007379d /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/oat/arm/base.odex (com.ansca.corona.events.EventManager.sendEvents+276) #21 pc 0000000000062971 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/oat/arm/base.odex (com.ansca.corona.Controller.updateRuntimeState+512) #22 pc 0000000000078223 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/oat/arm/base.odex (com.ansca.corona.graphics.opengl.GLSurfaceView$GLThread.guardedRun+2466) #23 pc 0000000000078d55 /data/app/com.blackbean.tinypuzzle-CYKndkPyQ4WBr6MtQrt-Tg==/oat/arm/base.odex (com.ansca.corona.graphics.opengl.GLSurfaceView$GLThread.run+172) #24 pc 0000000000430375 /system/lib/libart.so (art\_quick\_invoke\_stub\_internal+68) #25 pc 0000000000409171 /system/lib/libart.so (art\_quick\_invoke\_stub+224) #26 pc 00000000000a4901 /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread\*, unsigned int\*, unsigned int, art::JValue\*, char const\*)+136) #27 pc 0000000000364ff9 /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod\*, art::(anonymous namespace)::ArgArray\*, art::JValue\*, char const\*)+52) #28 pc 0000000000365d8d /system/lib/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, \_jobject\*, \_jmethodID\*, jvalue\*)+316) #29 pc 0000000000387ce9 /system/lib/libart.so (art::Thread::CreateCallback(void\*)+900) #30 pc 0000000000065403 /system/lib/libc.so (\_\_pthread\_start(void\*)+22) #31 pc 000000000001e819 /system/lib/libc.so (\_\_start\_thread+32)

backtrace: #00 pc 00000000000071c0 /data/app-lib/com.blackbean.tinypuzzle-2/libalmixer.so #01 pc 000000000000a3e5 /data/app-lib/com.blackbean.tinypuzzle-2/libalmixer.so (ALmixer\_PlayChannelTimed+48) #02 pc 0000000000130c50 /data/app-lib/com.blackbean.tinypuzzle-2/libcorona.so #03 pc 000000000010f2b8 /data/app-lib/com.blackbean.tinypuzzle-2/libcorona.so #04 pc 000000000000cc1c /data/app-lib/com.blackbean.tinypuzzle-2/liblua.so #05 pc 000000000001ce30 /data/app-lib/com.blackbean.tinypuzzle-2/liblua.so #06 pc 000000000000d068 /data/app-lib/com.blackbean.tinypuzzle-2/liblua.so #07 pc 000000000000c374 /data/app-lib/com.blackbean.tinypuzzle-2/liblua.so #08 pc 000000000000d1e0 /data/app-lib/com.blackbean.tinypuzzle-2/liblua.so #09 pc 00000000000055b8 /data/app-lib/com.blackbean.tinypuzzle-2/liblua.so (lua\_pcall+88) #10 pc 00000000001072e8 /data/app-lib/com.blackbean.tinypuzzle-2/libcorona.so #11 pc 000000000009d000 /data/app-lib/com.blackbean.tinypuzzle-2/libcorona.so #12 pc 00000000000fcda4 /data/app-lib/com.blackbean.tinypuzzle-2/libcorona.so #13 pc 00000000000fdb3c /data/app-lib/com.blackbean.tinypuzzle-2/libcorona.so #14 pc 0000000000142758 /data/app-lib/com.blackbean.tinypuzzle-2/libcorona.so #15 pc 000000000002cc0c /data/app-lib/com.blackbean.tinypuzzle-2/libcorona.so #16 pc 0000000000020b8c /system/lib/libdvm.so (dvmPlatformInvoke+112) #17 pc 00000000000516eb /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const\*, JValue\*, Method const\*, Thread\*)+398) #18 pc 0000000000000214 /dev/ashmem/dalvik-jit-code-cache (deleted)

Any additional idea to resolve this errors?

Thanks!

You might want to try the audio2 library that I mentioned higher up in the discussion.

Rob

Hello Rob, we build and deploy the app in our testing device using audio2 without luck. Some of the sounds dont play at all and the UI freezes sometimes when one of this sound does not play.

We put in mail.lua on line 1 this code:

--Replacing Audio by Audio2 to resolve signal 11 (SIGSEGV), code 1 (SEGV\_MAPERR) in libalmixer.so if audio2 then audio=audio2; al=nil; print("=====\>\> Using audio2!!! \<\<=====") end

We see in the logcat the message using audio2, so i guess this is fine. But i cant see any error on logcat about the sounds that doesnt play.

Regards