I hate to admit but my "IBM architect style" game engine did something 
really stupid and accumulated lots of redundant sound samples over the life 
time of the application process. Basically every time when the game 
activity restarted and resources are loaded, the previously loaded sound 
samples were still registered and loaded again.

So just for the record: that crash can apparently happen when you try to 
load too many sound samples (or maybe too many times the same sample over 
and over again).

On Friday, February 22, 2013 5:26:21 PM UTC-6, Nobu Games wrote:
>
> I'm currently developing a game that makes use of SoundPool and OpenGL for 
> rendering 2D sprites. I just encountered for the first time a native 
> library crash while testing it for a bit. The log looks like as follows:
>
> 02-22 17:04:28.105: I/DEBUG(86): *** *** *** *** *** *** *** *** *** *** 
>> *** *** *** *** *** ***
>> 02-22 17:04:28.105: I/DEBUG(86): Build fingerprint: 
>> 'samsung/GT-I9000/GT-I9000:2.3.5/GINGERBREAD/XXJVS:user/release-keys'
>> 02-22 17:04:28.105: I/DEBUG(86): pid: 2839, tid: 6296  >>> 
>> com.nobu_games.android.zoolicious <<<
>> 02-22 17:04:28.105: I/DEBUG(86): signal 11 (SIGSEGV), code 1 
>> (SEGV_MAPERR), fault addr deadbaad
>> 02-22 17:04:28.105: I/DEBUG(86):  r0 00000027  r1 deadbaad  r2 a0000000  
>> r3 00000000
>> 02-22 17:04:28.105: I/DEBUG(86):  r4 00000001  r5 00000000  r6 00000000  
>> r7 083a1ffc
>> 02-22 17:04:28.105: I/DEBUG(86):  r8 476ad9c4  r9 476ad91c  10 00000003  
>> fp 00000000
>> 02-22 17:04:28.105: I/DEBUG(86):  ip afd46688  sp 476ad820  lr afd19241  
>> pc afd15d04  cpsr 60000030
>> 02-22 17:04:28.105: I/DEBUG(86):  d0  3ff921fb3f800000  d1  
>> 00000004000003e0
>> 02-22 17:04:28.105: I/DEBUG(86):  d2  0000003c476ada9f  d3  
>> 003c216000000046
>> 02-22 17:04:28.105: I/DEBUG(86):  d4  00410049002e0061  d5  
>> 006f006900640075
>> 02-22 17:04:28.105: I/DEBUG(86):  d6  00015888006c0046  d7  
>> 0000000000000000
>> 02-22 17:04:28.105: I/DEBUG(86):  d8  3dcccccd40000000  d9  
>> 3e580af8bf800000
>> 02-22 17:04:28.105: I/DEBUG(86):  d10 451c40003e580af8  d11 
>> 37381cb13d888888
>> 02-22 17:04:28.109: I/DEBUG(86):  d12 3f6f4f4e3f74bfa7  d13 
>> 0000000000000000
>> 02-22 17:04:28.109: I/DEBUG(86):  d14 0000000000000000  d15 
>> 0000000000000000
>> 02-22 17:04:28.109: I/DEBUG(86):  d16 3fe0000000000000  d17 
>> 3f8996b5e5285903
>> 02-22 17:04:28.109: I/DEBUG(86):  d18 bf56a8cadc65ad5a  d19 
>> 3fab91938da65ac6
>> 02-22 17:04:28.109: I/DEBUG(86):  d20 3fa55553e1053a42  d21 
>> 3f11560beb56dc27
>> 02-22 17:04:28.109: I/DEBUG(86):  d22 bebbbca9f71c732b  d23 
>> 3ef99342e0ee5069
>> 02-22 17:04:28.109: I/DEBUG(86):  d24 3e66376972bea4d0  d25 
>> 3fd17460a91d4101
>> 02-22 17:04:28.109: I/DEBUG(86):  d26 3ff0000000000000  d27 
>> bf5bddcbada9b0e3
>> 02-22 17:04:28.109: I/DEBUG(86):  d28 bfff15aeeed843f8  d29 
>> 3fad93040d6c79e9
>> 02-22 17:04:28.109: I/DEBUG(86):  d30 bc22eadd8918d9a8  d31 
>> 3e5077113d200000
>> 02-22 17:04:28.109: I/DEBUG(86):  scr 80000012
>> 02-22 17:04:28.254: I/DEBUG(86):          #00  pc 00015d04  
>> /system/lib/libc.so
>> 02-22 17:04:28.254: I/DEBUG(86):          #01  pc 00013e68  
>> /system/lib/libc.so
>> 02-22 17:04:28.254: I/DEBUG(86):          #02  pc 0001451e  
>> /system/lib/libc.so
>> 02-22 17:04:28.254: I/DEBUG(86):          #03  pc 0001ac6a  
>> /system/lib/libbinder.so
>> 02-22 17:04:28.258: I/DEBUG(86):          #04  pc 0001ad64  
>> /system/lib/libbinder.so
>> 02-22 17:04:28.258: I/DEBUG(86):          #05  pc 0001ad90  
>> /system/lib/libbinder.so
>> 02-22 17:04:28.258: I/DEBUG(86):          #06  pc 0001ada6  
>> /system/lib/libbinder.so
>> 02-22 17:04:28.258: I/DEBUG(86):          #07  pc 0001af48  
>> /system/lib/libbinder.so
>> 02-22 17:04:28.262: I/DEBUG(86):          #08  pc 00032348  
>> /system/lib/libmedia.so
>> 02-22 17:04:28.262: I/DEBUG(86):          #09  pc 0002f454  
>> /system/lib/libmedia.so
>> 02-22 17:04:28.262: I/DEBUG(86):          #10  pc 0002fe2a  
>> /system/lib/libmedia.so
>> 02-22 17:04:28.266: I/DEBUG(86):          #11  pc 0002ffae  
>> /system/lib/libmedia.so
>> 02-22 17:04:28.266: I/DEBUG(86):          #12  pc 00004764  
>> /system/lib/libsoundpool.so
>> 02-22 17:04:28.266: I/DEBUG(86): code around pc:
>> 02-22 17:04:28.266: I/DEBUG(86): afd15ce4 2c006824 e028d1fb b13368db 
>> c064f8df 
>> 02-22 17:04:28.266: I/DEBUG(86): afd15cf4 44fc2401 4000f8cc 49124798 
>> 25002027 
>> 02-22 17:04:28.266: I/DEBUG(86): afd15d04 f7f57008 2106ec64 edd8f7f6 
>> 460aa901 
>> 02-22 17:04:28.266: I/DEBUG(86): afd15d14 f04f2006 95015380 95029303 
>> e93ef7f6 
>> 02-22 17:04:28.266: I/DEBUG(86): afd15d24 462aa905 f7f62002 f7f5e94a 
>> 2106ec50 
>> 02-22 17:04:28.266: I/DEBUG(86): code around lr:
>> 02-22 17:04:28.266: I/DEBUG(86): afd19220 4a0e4b0d e92d447b 589c41f0 
>> 26004680 
>> 02-22 17:04:28.266: I/DEBUG(86): afd19230 686768a5 f9b5e006 b113300c 
>> 47c04628 
>> 02-22 17:04:28.266: I/DEBUG(86): afd19240 35544306 37fff117 6824d5f5 
>> d1ef2c00 
>> 02-22 17:04:28.269: I/DEBUG(86): afd19250 e8bd4630 bf0081f0 000282fc 
>> ffffff88 
>> 02-22 17:04:28.269: I/DEBUG(86): afd19260 b086b570 f602fb01 9004460c 
>> a804a901 
>> 02-22 17:04:28.269: I/DEBUG(86): stack:
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad7e0  afd42684  
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad7e4  000a0798  
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad7e8  00000015  
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad7ec  afd18309  
>> /system/lib/libc.so
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad7f0  afd4272c  
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad7f4  afd426d8  
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad7f8  00000000  
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad7fc  afd19241  
>> /system/lib/libc.so
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad800  00000001  
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad804  476ad834  
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad808  00000000  
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad80c  083a1ffc  
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad810  476ad9c4  
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad814  afd18563  
>> /system/lib/libc.so
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad818  df002777  
>> 02-22 17:04:28.269: I/DEBUG(86):     476ad81c  e3a070ad  
>> 02-22 17:04:28.269: I/DEBUG(86): #00 476ad820  a8223204  
>> 02-22 17:04:28.273: I/DEBUG(86):     476ad824  00000000  
>> 02-22 17:04:28.273: I/DEBUG(86):     476ad828  00000006  
>> 02-22 17:04:28.273: I/DEBUG(86):     476ad82c  afd46470  
>> 02-22 17:04:28.273: I/DEBUG(86):     476ad830  00000000  
>> 02-22 17:04:28.273: I/DEBUG(86):     476ad834  fffffbdf  
>> 02-22 17:04:28.273: I/DEBUG(86):     476ad838  476ad9c4  
>> 02-22 17:04:28.273: I/DEBUG(86):     476ad83c  00403120  
>> 02-22 17:04:28.273: I/DEBUG(86):     476ad840  0000003b  
>> 02-22 17:04:28.273: I/DEBUG(86):     476ad844  afd13e6d  
>> /system/lib/libc.so
>> 02-22 17:04:28.273: I/DEBUG(86): #01 476ad848  476ad91c  
>> 02-22 17:04:28.273: I/DEBUG(86):     476ad84c  00000006  
>> 02-22 17:04:28.273: I/DEBUG(86):     476ad850  00000000  
>> 02-22 17:04:28.273: I/DEBUG(86):     476ad854  00000b17  
>> 02-22 17:04:28.273: I/DEBUG(86):     476ad858  476ad9c4  
>> 02-22 17:04:28.273: I/DEBUG(86):     476ad85c  afd14521  
>> /system/lib/libc.so
>> 02-22 17:04:29.367: I/BootReceiver(324): Copying 
>> /data/tombstones/tombstone_03 to DropBox (SYSTEM_TOMBSTONE)
>> 02-22 17:04:29.375: I/DEBUG(86): dumpstate 
>> /data/log/dumpstate_app_native.txt
>>
> The device is a Samsung Galaxy S running Android 2.3.5 and it looks like 
> the native counterpart of SoundPool caused that crash. As far as I know you 
> get that kind of crash when memory allocation notices heap memory 
> corruption on the native side. However, my game is written in pure Java so 
> far and and it does not allocate any native heap memory directly. Only 
> indirectly by decoding Bitmaps for creating textures and loading short 
> sound samples into SoundPool.
>
> My game has currently 16 sound samples loaded in memory. I guess it's a 
> bit too much and I will change that soon. A few of these sounds do not need 
> to be in memory all the time. On the OpenGL-end there are between 60 up to 
> 70 textures at an average resolution of 256x256 loaded. The original 
> bitmaps are not kept in memory. It's a lot but I need to render bitmap 
> animation sequences. And so far my phone did not complain. Performance is 
> also pretty good.
>
> I bet that this crash will occur much more often out in the wild and I'm a 
> bit concerned about that because users will hold me responsible for that. I 
> just want to ask you folks about your experience with SoundPool and game 
> development. What am I doing wrong? How to get around this problem?
>
> Thanks!
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to