Audio and video crash on android device v 2013.999

**I use build v 2013.999

On all devices everything was fine and music and sound play fine. But our company has bought Chinese tablet onda v811. And now my game crash when trying to load audio, like menu_sound = audio.loadStream( “audio/menu.mp3” ) or try audio.reserveChannels( 2 )

So very need fix it or some workaround to avoid crash

For test I build your \Sample Code\Media\SimpleMixer, and see log bellow**
01-14 11:34:36.850: D/TelephonyManager(14789): getDeviceId android id:151312121086001326615142, device id:151312121086001
01-14 11:34:36.890: I/SoundDecoder(14789): ALL MPG123 DECODERS:
01-14 11:34:36.890: I/SoundDecoder(14789): generic
01-14 11:34:36.890: I/SoundDecoder(14789): SUPPORTED MPG123 DECODERS:
01-14 11:34:36.890: I/SoundDecoder(14789): generic
01-14 11:34:36.890: I/OpenAL_SLES(14789): opensles_open_playback pDevice=0x5b36b008, deviceName=(null)
01-14 11:34:36.920: I/OpenAL_SLES(14789): OpenSLES could not be loaded.
01-14 11:34:36.920: A/libc(14789): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
01-14 11:34:37.420: I/DEBUG(13937): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-14 11:34:37.420: I/DEBUG(13937): Build fingerprint: ‘unknown’
01-14 11:34:37.420: I/DEBUG(13937): pid: 14789, tid: 14807 >>> com.myappname.test <<<
01-14 11:34:37.420: I/DEBUG(13937): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
01-14 11:34:37.420: I/DEBUG(13937): r0 00000000 r1 56c1c690 r2 00000000 r3 00000000
01-14 11:34:37.420: I/DEBUG(13937): r4 56c1c688 r5 00000000 r6 5b36b008 r7 56c1c0f8
01-14 11:34:37.420: I/DEBUG(13937): r8 00000001 r9 56c1c0c0 10 000513f8 fp 00179490
01-14 11:34:37.420: I/DEBUG(13937): ip 4000e108 sp 59f77510 lr 56bce10c pc 56bdfed4 cpsr 20030010
01-14 11:34:37.420: I/DEBUG(13937): d0 6f6c20656220746f d1 706e755f73696272
01-14 11:34:37.420: I/DEBUG(13937): d2 6163203331333220 d3 636f6c20746f6e6e
01-14 11:34:37.420: I/DEBUG(13937): d4 6f6620276f732e74 d5 697762696c272072
01-14 11:34:37.420: I/DEBUG(13937): d6 6f732e6d6c65686c d7 636f6c6572282027
01-14 11:34:37.420: I/DEBUG(13937): d8 0000000000000000 d9 0000000000000000
01-14 11:34:37.420: I/DEBUG(13937): d10 0000000000000000 d11 0000000000000000
01-14 11:34:37.420: I/DEBUG(13937): d12 0000000000000000 d13 0000000000000000
01-14 11:34:37.420: I/DEBUG(13937): d14 0000000000000000 d15 0000000000000000
01-14 11:34:37.420: I/DEBUG(13937): d16 3fe6a09e667f3bcd d17 3f8fcf32d797aef0
01-14 11:34:37.420: I/DEBUG(13937): d18 3fe621619b20dd11 d19 3fd3bd3cc9be45de
01-14 11:34:37.420: I/DEBUG(13937): d20 0000000000000000 d21 3f99c8a0cf9f3cbd
01-14 11:34:37.420: I/DEBUG(13937): d22 3e21df36098310b4 d23 bda8fae9be8838d4
01-14 11:34:37.420: I/DEBUG(13937): d24 3e66376972bea4d0 d25 c010000000000000
01-14 11:34:37.420: I/DEBUG(13937): d26 3ff6a09e00000000 d27 b9938b6d15331805
01-14 11:34:37.420: I/DEBUG(13937): d28 c000000000000002 d29 bcc98d4c957ef5fc
01-14 11:34:37.420: I/DEBUG(13937): d30 b94b794ffffffffb d31 bb81414b5fc00000
01-14 11:34:37.420: I/DEBUG(13937): scr 60000012
01-14 11:34:37.570: I/DEBUG(13937): #00 pc 00023ed4 /data/data/com.myappname.test/lib/libopenal.so
01-14 11:34:37.570: I/DEBUG(13937): #01 pc 00012108 /data/data/com.myappname.test/lib/libopenal.so (alcOpenDevice)
01-14 11:34:37.570: I/DEBUG(13937): #02 pc 00008174 /data/data/com.myappname.test/lib/libalmixer.so (ALmixer_Init)
01-14 11:34:37.570: I/DEBUG(13937): #03 pc 000c2478 /data/data/com.myappname.test/lib/libcorona.so (_ZN3Rtt20PlatformOpenALPlayer22InitializeOpenALPlayerEv)
01-14 11:34:37.570: I/DEBUG(13937): #04 pc 000c2cac /data/data/com.myappname.test/lib/libcorona.so (_ZNK3Rtt20PlatformOpenALPlayer18CountTotalChannelsEv)
01-14 11:34:37.570: I/DEBUG(13937): #05 pc 000b1a30 /data/data/com.myappname.test/lib/libcorona.so
01-14 11:34:37.570: I/DEBUG(13937): #06 pc 0000c920 /data/data/com.myappname.test/lib/liblua.so
01-14 11:34:37.580: I/DEBUG(13937): #07 pc 0000cda0 /data/data/com.myappname.test/lib/liblua.so
01-14 11:34:37.580: I/DEBUG(13937): #08 pc 0001b644 /data/data/com.myappname.test/lib/liblua.so
01-14 11:34:37.580: I/DEBUG(13937): #09 pc 0001bb6c /data/data/com.myappname.test/lib/liblua.so
01-14 11:34:37.580: I/DEBUG(13937): #10 pc 0001c3ec /data/data/com.myappname.test/lib/liblua.so
01-14 11:34:37.580: I/DEBUG(13937): code around pc:
01-14 11:34:37.580: I/DEBUG(13937): 56bdfeb4 e59f422c e1a06000 e1a05001 e08f4004 ,B…`…P…@…
01-14 11:34:37.580: I/DEBUG(13937): 56bdfec4 e3a02000 e2841008 e5943004 e1a00003 . …0…
01-14 11:34:37.580: I/DEBUG(13937): 56bdfed4 e5933000 e1a0e00f e593f010 e594300c .0…0…
01-14 11:34:37.580: I/DEBUG(13937): 56bdfee4 e3530000 0a000015 e3550000 0a000072 …S…U.r…
01-14 11:34:37.580: I/DEBUG(13937): 56bdfef4 e59f11f0 e1a00005 e08f1001 ebff863c …<…>01-14 11:34:37.580: I/DEBUG(13937): code around lr:
01-14 11:34:37.580: I/DEBUG(13937): 56bce0ec e1a02308 e1a00004 e1a01005 e0422188 .#…!B.
01-14 11:34:37.580: I/DEBUG(13937): 56bce0fc e2822010 e0892002 e784200a e12fff33 . … … …3./.
01-14 11:34:37.580: I/DEBUG(13937): 56bce10c e3500000 1a000018 e2877038 e2888001 …P…8p…
01-14 11:34:37.580: I/DEBUG(13937): 56bce11c e5973004 e3530000 0a000009 e5973010 .0…S…0…
01-14 11:34:37.580: I/DEBUG(13937): 56bce12c e3530000 1affffed e1a00003 e1a0e00f …S…
01-14 11:34:37.580: I/DEBUG(13937): stack:
01-14 11:34:37.580: I/DEBUG(13937): 59f774d0 00001000
01-14 11:34:37.580: I/DEBUG(13937): 59f774d4 00000000
01-14 11:34:37.580: I/DEBUG(13937): 59f774d8 00000018
01-14 11:34:37.580: I/DEBUG(13937): 59f774dc 00000000
01-14 11:34:37.580: I/DEBUG(13937): 59f774e0 4892fac0 /dev/ashmem/dalvik-heap (deleted)
01-14 11:34:37.580: I/DEBUG(13937): 59f774e4 00000000
01-14 11:34:37.580: I/DEBUG(13937): 59f774e8 4892fac0 /dev/ashmem/dalvik-heap (deleted)
01-14 11:34:37.580: I/DEBUG(13937): 59f774ec 00000000
01-14 11:34:37.580: I/DEBUG(13937): 59f774f0 000000ff
01-14 11:34:37.580: I/DEBUG(13937): 59f774f4 00000000
01-14 11:34:37.580: I/DEBUG(13937): 59f774f8 000002ee
01-14 11:34:37.580: I/DEBUG(13937): 59f774fc 00000000
01-14 11:34:37.580: I/DEBUG(13937): 59f77500 00000000
01-14 11:34:37.580: I/DEBUG(13937): 59f77504 56c1c6b8 /data/data/com.myappname.test/lib/libopenal.so
01-14 11:34:37.580: I/DEBUG(13937): 59f77508 df0027ad
01-14 11:34:37.580: I/DEBUG(13937): 59f7750c 00000000
01-14 11:34:37.580: I/DEBUG(13937): #00 59f77510 5b36b008
01-14 11:34:37.580: I/DEBUG(13937): 59f77514 00000000
01-14 11:34:37.590: I/DEBUG(13937): 59f77518 5b36b008
01-14 11:34:37.590: I/DEBUG(13937): 59f7751c 56c1c0f8 /data/data/com.myappname.test/lib/libopenal.so
01-14 11:34:37.590: I/DEBUG(13937): 59f77520 00000001
01-14 11:34:37.590: I/DEBUG(13937): 59f77524 56bce10c /data/data/com.myappname.test/lib/libopenal.so
01-14 11:34:37.590: I/DEBUG(13937): #01 59f77528 00000001
01-14 11:34:37.590: I/DEBUG(13937): 59f7752c 574923c0 /data/data/com.myappname.test/lib/libalmixer.so
01-14 11:34:37.590: I/DEBUG(13937): 59f77530 00000020
01-14 11:34:37.590: I/DEBUG(13937): 59f77534 00000000
01-14 11:34:37.590: I/DEBUG(13937): 59f77538 00000005
01-14 11:34:37.590: I/DEBUG(13937): 59f7753c 56bb930c /data/data/com.myappname.test/lib/liblua.so
01-14 11:34:37.590: I/DEBUG(13937): 59f77540 56bb8cc8 /data/data/com.myappname.test/lib/liblua.so
01-14 11:34:37.590: I/DEBUG(13937): 59f77544 5748b177 /data/data/com.myappname.test/lib/libalmixer.so
01-14 11:34:38.950: V/WindowManager(3248): Preventing status bar from hiding by policy
01-14 11:34:40.800: I/BootReceiver(3248): Copying /data/tombstones/tombstone_07 to DropBox (SYSTEM_TOMBSTONE)
01-14 11:34:40.840: D/Sensors(3248): AccelSensor…setDelay, ms=66
01-14 11:34:40.840: E/Sensors(3248): Error in setDelay 66 ms
01-14 11:34:40.840: V/WindowManager(3248): Preventing status bar from hiding by policy
01-14 11:34:40.840: I/ActivityManager(3248): Process com.myappname.test (pid 14789) has died.
01-14 11:34:40.840: I/WindowManager(3248): WIN DEATH: Window{413c2520 com.myappname.test/com.ansca.corona.CoronaActivity paused=false}
01-14 11:34:40.840: W/WindowManager(3248): Force-removing child win Window{4140e050 SurfaceView paused=false} from container Window{413c2520 com.myappname.test/com.ansca.corona.CoronaActivity paused=false}
01-14 11:34:40.840: W/ActivityManager(3248): Force removing ActivityRecord{41252440 com.myappname.test/com.ansca.corona.CoronaActivity}: app died, no saved state
01-14 11:34:40.850: W/WindowManager(3248): Failed looking up window
01-14 11:34:40.850: W/WindowManager(3248): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@4134a980 does not exist
01-14 11:34:40.850: W/WindowManager(3248): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7250)
01-14 11:34:40.850: W/WindowManager(3248): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7241)
01-14 11:34:40.850: W/WindowManager(3248): at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1536)
01-14 11:34:40.850: W/WindowManager(3248): at android.os.BinderProxy.sendDeathNotice(Binder.java:417)
01-14 11:34:40.850: W/WindowManager(3248): at dalvik.system.NativeStart.run(Native Method)
01-14 11:34:40.850: I/WindowManager(3248): WIN DEATH: null


The same crash problem with media.playVideo( “myvideo.mp4”, false, onComplete )

01-14 11:59:53.980: I/VideoView(21303): Layout changed,left=0 top=0 right=1024 bottom=720
01-14 11:59:53.990: I/VideoView(21303): Layout changed,oldLeft=0 oldTop=0 oldRight=0 oldBottom=0
01-14 11:59:54.050: W/dalvikvm(21303): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Landroid/media/MediaPlayer;
01-14 11:59:54.050: D/AndroidRuntime(21303): Shutting down VM
01-14 11:59:54.050: W/dalvikvm(21303): threadid=1: thread exiting with uncaught exception (group=0x409f71f8)
01-14 11:59:54.070: E/AndroidRuntime(21303): FATAL EXCEPTION: main
01-14 11:59:54.070: E/AndroidRuntime(21303): java.lang.ExceptionInInitializerError
01-14 11:59:54.070: E/AndroidRuntime(21303): at android.widget.VideoView.openVideo(VideoView.java:256)
01-14 11:59:54.070: E/AndroidRuntime(21303): at android.widget.VideoView.access$2000(VideoView.java:51)
01-14 11:59:54.070: E/AndroidRuntime(21303): at android.widget.VideoView$6.surfaceCreated(VideoView.java:510)
01-14 11:59:54.070: E/AndroidRuntime(21303): at android.view.SurfaceView.updateWindow(SurfaceView.java:537)
01-14 11:59:54.070: E/AndroidRuntime(21303): at android.view.SurfaceView.access$000(SurfaceView.java:81)
01-14 11:59:54.070: E/AndroidRuntime(21303): at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:171)
01-14 11:59:54.070: E/AndroidRuntime(21303): at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:590)
01-14 11:59:54.070: E/AndroidRuntime(21303): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1617)
01-14 11:59:54.070: E/AndroidRuntime(21303): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
01-14 11:59:54.070: E/AndroidRuntime(21303): at android.os.Handler.dispatchMessage(Handler.java:99)
01-14 11:59:54.070: E/AndroidRuntime(21303): at android.os.Looper.loop(Looper.java:137)
01-14 11:59:54.070: E/AndroidRuntime(21303): at android.app.ActivityThread.main(ActivityThread.java:4429)
01-14 11:59:54.070: E/AndroidRuntime(21303): at java.lang.reflect.Method.invokeNative(Native Method)
01-14 11:59:54.070: E/AndroidRuntime(21303): at java.lang.reflect.Method.invoke(Method.java:511)
01-14 11:59:54.070: E/AndroidRuntime(21303): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
01-14 11:59:54.070: E/AndroidRuntime(21303): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
01-14 11:59:54.070: E/AndroidRuntime(21303): at dalvik.system.NativeStart.main(Native Method)
01-14 11:59:54.070: E/AndroidRuntime(21303): Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1936]: 2313 could not load needed library ‘libstagefright.so’ for ‘libmedia_jni.so’ (reloc_library[1285]: 2313 cannot locate ‘_vorbis_unpack_info’…
01-14 11:59:54.070: E/AndroidRuntime(21303): )
01-14 11:59:54.070: E/AndroidRuntime(21303): at java.lang.Runtime.loadLibrary(Runtime.java:391)
01-14 11:59:54.070: E/AndroidRuntime(21303): at java.lang.System.loadLibrary(System.java:535)
01-14 11:59:54.070: E/AndroidRuntime(21303): at android.media.MediaPlayer.(MediaPlayer.java:525)
01-14 11:59:54.070: E/AndroidRuntime(21303): … 17 more
01-14 11:59:54.080: W/ActivityManager(3248): Force finishing activity com.myapp2.test/com.ansca.corona.VideoActivity
01-14 11:59:54.110: W/ActivityManager(3248): Force finishing activity com.myapp2.test/com.ansca.corona.CoronaActivity
01-14 11:59:54.130: V/TabletStatusBar(3319): setLightsOn(true)
01-14 11:59:54.610: W/ActivityManager(3248): Activity pause timeout for ActivityRecord{41386970 com.myapp2.test/com.ansca.corona.VideoActivity}
01-14 11:59:54.940: I/ActivityManager(3248): No longer want android.process.media (pid 18527): hidden #16
01-14 11:59:54.950: D/OpenGLRenderer(3852): Flushing caches (mode 1)
01-14 12:00:00.040: D/AlarmManagerService(3248): Kernel timezone updated to -120 minutes west of GMT
01-14 12:00:00.050: I/ActivityManager(3248): Start proc com.android.calendar for broadcast com.android.calendar/.widget.CalendarAppWidgetService$CalendarFactory: pid=21449 uid=10050 gids={3003}
01-14 12:00:00.170: I/ActivityThread(21449): Pub com.android.calendar.CalendarRecentSuggestionsProvider: com.android.calendar.CalendarRecentSuggestionsProvider
01-14 12:00:00.280: I/ActivityManager(3248): Start proc com.android.providers.calendar for content provider com.android.providers.calendar/.CalendarProvider2: pid=21464 uid=10015 gids={3003, 1015}
01-14 12:00:00.280: I/ActivityManager(3248): No longer want mobi.mgeek.TunnyBrowser (pid 783): hidden #16
01-14 12:00:00.350: I/ActivityManager(3248): No longer want com.google.android.gsf.login (pid 4365): hidden #16
01-14 12:00:00.410: I/ActivityThread(21464): Pub com.android.calendar: com.android.providers.calendar.CalendarProvider2
01-14 12:00:01.500: I/CalendarProvider2(21464): Sending notification intent: Intent { act=android.intent.action.PROVIDER_CHANGED dat=content://com.android.calendar }
[import]uid: 190293 topic_id: 34921 reply_id: 334921[/import] </…>

corona developer are you here?
[import]uid: 190293 topic_id: 34921 reply_id: 139137[/import]

corona developer are you here?
[import]uid: 190293 topic_id: 34921 reply_id: 139137[/import]

so what about this bug? [import]uid: 190293 topic_id: 34921 reply_id: 141048[/import]

I’m having the same issue with my games on devices such as the Novo 7 ELF II 7 inch.
it says - OpenSLES could not be loaded
Is there something that can be done here? [import]uid: 118978 topic_id: 34921 reply_id: 141257[/import]

What do you know about these devices? What processor are they running? What version of the OS are they running? Are they running the official Google version or have they taken the Open Source version of Android and implemented it?
During the video load for the top post there is this error:

Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1936]: 2313 could not load needed library ‘libstagefright.so’ for ‘libmedia_jni.so’ (reloc_library[1285]: 2313 cannot locate ‘_vorbis_unpack_info’…

And for audio:

OpenSLES could not be loaded.

These appear to be different errors, one the OpenSLES is hinting that the OS doesn’t support the standard audio libraries, which our audio.* API uses.

On the video side, it sounds like there is another library that the media.* API is trying to use that’s also missing.

So I think we need to know more about the OS running on your devices.
[import]uid: 199310 topic_id: 34921 reply_id: 141281[/import]

Hi Rob,

I only saw a portion of a logcat from a user device, which hinted that the audio library openSLES could not be loaded. I did not see any error with video, although I wouldn’t be surprised to see that too.
Other than that, i do not have any more info about the device android origin, whether its open source or from google. I’ve looked at the device name on google and it seems to have some popularity. its official android version is 4.0.3.
http://www.ainol-novo.com/ainol-novo7-elf-ii-7-inch-dual-core-1-5ghz-android-tablet.html

I suspect these android implementations on chineses devices are partial at best, and I do not have high hopes that we can have alternative audio route in case they did not implement the full android suite. [import]uid: 118978 topic_id: 34921 reply_id: 141298[/import]

so what about this bug? [import]uid: 190293 topic_id: 34921 reply_id: 141048[/import]

I’m having the same issue with my games on devices such as the Novo 7 ELF II 7 inch.
it says - OpenSLES could not be loaded
Is there something that can be done here? [import]uid: 118978 topic_id: 34921 reply_id: 141257[/import]

What do you know about these devices? What processor are they running? What version of the OS are they running? Are they running the official Google version or have they taken the Open Source version of Android and implemented it?
During the video load for the top post there is this error:

Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1936]: 2313 could not load needed library ‘libstagefright.so’ for ‘libmedia_jni.so’ (reloc_library[1285]: 2313 cannot locate ‘_vorbis_unpack_info’…

And for audio:

OpenSLES could not be loaded.

These appear to be different errors, one the OpenSLES is hinting that the OS doesn’t support the standard audio libraries, which our audio.* API uses.

On the video side, it sounds like there is another library that the media.* API is trying to use that’s also missing.

So I think we need to know more about the OS running on your devices.
[import]uid: 199310 topic_id: 34921 reply_id: 141281[/import]

Hi Rob,

I only saw a portion of a logcat from a user device, which hinted that the audio library openSLES could not be loaded. I did not see any error with video, although I wouldn’t be surprised to see that too.
Other than that, i do not have any more info about the device android origin, whether its open source or from google. I’ve looked at the device name on google and it seems to have some popularity. its official android version is 4.0.3.
http://www.ainol-novo.com/ainol-novo7-elf-ii-7-inch-dual-core-1-5ghz-android-tablet.html

I suspect these android implementations on chineses devices are partial at best, and I do not have high hopes that we can have alternative audio route in case they did not implement the full android suite. [import]uid: 118978 topic_id: 34921 reply_id: 141298[/import]

You can fast add some check for example

if ( OpenSLES could not be loaded ) then
— dont load and dont play sounds and music
end

or add this check in corona engine if OpenSLES could not be loaded not play sound and no crash.

or may be this method exist? How I can catch this error? No sound for some device will be better then crash. Now use v 2013.1024 the same problem.

Model - Onda V811
Amlogic 8726-MX Cortex A9 Dual Core 1.5Ghz
GPU: Mali 400 dual-core
RAM - 1GB, ROM - 16GB
Baseband version 1.5.5
Android 4.0.3 [import]uid: 190293 topic_id: 34921 reply_id: 142101[/import]

We actually do check for the “/system/lib/libOpenSLES.so” library’s existence before attempting to load it, and if we can’t find it, we revert to using the AudioTrack Java class to stream out audio. In fact, this [lua]if[/lua] check definitely works because Android 2.2 devices do not come with the OpenSL library, so we always fallback to using AudioTrack. This means something else is seriously wrong with this Onda tablet.

And regarding the video player crash, that’s even more disturbing. We use the standard VideoView Java class in Android to play videos. So, this means it is crashing in Google’s code. It makes me wonder what other standard Android Java APIs might have potential crashers on this device.

Please feel free to write up a bug report about this issue by clicking the “Report a Bug” link at the top of this web page. But that said, I doubt we’ll be able to address this issue in the near future. It just sounds like an untrustworthy device running a bad fork of the Android OS. [import]uid: 32256 topic_id: 34921 reply_id: 142117[/import]

ok, I submit this bug [import]uid: 190293 topic_id: 34921 reply_id: 142344[/import]

You can fast add some check for example

if ( OpenSLES could not be loaded ) then
— dont load and dont play sounds and music
end

or add this check in corona engine if OpenSLES could not be loaded not play sound and no crash.

or may be this method exist? How I can catch this error? No sound for some device will be better then crash. Now use v 2013.1024 the same problem.

Model - Onda V811
Amlogic 8726-MX Cortex A9 Dual Core 1.5Ghz
GPU: Mali 400 dual-core
RAM - 1GB, ROM - 16GB
Baseband version 1.5.5
Android 4.0.3 [import]uid: 190293 topic_id: 34921 reply_id: 142101[/import]

We actually do check for the “/system/lib/libOpenSLES.so” library’s existence before attempting to load it, and if we can’t find it, we revert to using the AudioTrack Java class to stream out audio. In fact, this [lua]if[/lua] check definitely works because Android 2.2 devices do not come with the OpenSL library, so we always fallback to using AudioTrack. This means something else is seriously wrong with this Onda tablet.

And regarding the video player crash, that’s even more disturbing. We use the standard VideoView Java class in Android to play videos. So, this means it is crashing in Google’s code. It makes me wonder what other standard Android Java APIs might have potential crashers on this device.

Please feel free to write up a bug report about this issue by clicking the “Report a Bug” link at the top of this web page. But that said, I doubt we’ll be able to address this issue in the near future. It just sounds like an untrustworthy device running a bad fork of the Android OS. [import]uid: 32256 topic_id: 34921 reply_id: 142117[/import]

ok, I submit this bug [import]uid: 190293 topic_id: 34921 reply_id: 142344[/import]

Josh -

   I know this is an old issue, and you guys have said you were not planning to address it. But, I want to see if the new data below would have you guys reconsider. We have been getting lots of complaints that our app is crashing where we have either confirmed, or strongly suspect this to the the root cause. Below are some of the devices that we know about, and some of them appears to be reasonable popular (eg. Y88 has 1000 Amazon reviews, Noria tablets have 500s, ).

* Y88 Dragon Tablet: http://www.amazon.com/Dragon-Y88-1024x600-Pre-load-Supported/dp/B00G3Q46DC/ref=sr_1_1?s=electronics&ie=UTF8&qid=1395700117&sr=1-1&keywords=dragon+touch+pink+y88

* Noria Tablet: Also available on Amazon

* Onda devices

* http://www.energysistem.com/es/products/tablet/serie_tablet_i_hd_4_3/39439-energy_tablet_i8_dual_16gb_silver_metal

* Some white-label devices from foreign retailers

We also did some additional investigation and found that this issue was introduced sometime between release 2012.934 and 2012.994. Is it possible that somehow the loading of the library changed between these releases, and it would be a simple fix on your end?

Where this really hurts us is that these users not only give us bad reviews, but also uninstall our app from their devices. By doing so, they increase the uninstall rates on our app, which in term drives down our ranking in the Google Play store. Our uninstall rates have crept up from around 50% early last year to 70% lately, causing our ranking in our category to tank from the 20s down to the 150s. We have already tried everything we can think of to curb that uninstall rate, and currently strongly suspect this to be a contributing factor.

Furthermore there are still new tablets being released that have this issue. The issue is particularly acute for us kids app developers since parents are buying these cheap tablets for their young kids to get their kids off of the “adult iPad/tablet”… While it’s hard to tell exactly what % of the device on the market have these issues, market research firms like GDC are saying that something like 42% of the global smartphone shipments are in the budget category. (http://appleinsider.com/articles/14/02/12/idc-critical-of-apple-for-not-selling-profitless-sub-200-iphones-in-market-share-report).
 

To help, we would be super happy to ship you a device for testing. We can also help further investigate the issue if you need us to. Just let us know!

Thank you!

Andrew

We haven’t been able to reproduce this issue on our end, but it also rarely comes up.  So, it’s been low priority.

The change we made in those older daily builds was to add support for Android’s OpenSL ES library (Open Sound Library), which is what our “audio” APIs use on Android 2.3 and newer devices.  This is what Google recommends game developers to use for audio.  It provides low latency audio on the newest Android devices which is what we all want.

Now for the bad news.  We have no idea why it is crashing.  We know where it crashes, but it doesn’t make any sense.  What’s happening is that our audio code checks for the existence of the OpenSL library, and if it exists, we load it dynamically.  The problem is that some of these devices crash when we attempt to load this library and we’re unable to catch the error/exception.  If I were to guess what is wrong, then it sounds like a bad forked version of the library made by the manufacturer.  Either that or its a forked version of the OpenSL library which requires us to load another library to get it working first (which would not be standard).  Whatever it is, some of these devices are clearly not following the rules like most Android devices.

My best advice at the moment is to remove these offending devices from your supported list on Google Play.

And if it makes you feel any better, this is a rare issue.  We do go out of our way to support low-end cheap Android devices, but there are the rare devices that just don’t follow the rules and flat out misbehave.  It’s not cost effective to buy every device and spend time/resources on every device that has known issues (there are far too many devices) and it is better to focus on the most popular device models.  In any case, that’s my 2 cents.

Hi Josh -

    Thanks for the quick and thorough response!

    Since I expect this to be an issue that every Corona developer is having as well (I think most developers just don’t realize it, like we were), perhaps what would be helpful is an new pinned topic in the forum where any device that the community came across that has this issue can be listed? That way we can all manually exclude these from our supported devices list? Is there someone in CoronaLabs who can make that happen?

     What’s also infuriating is that some of these devices don’t have names in the Google developer console that are recognizable. For examples, I was looking for the Noria devices to exclude yesterday, but can’t find any device on the list that’s clearly theirs… argh!!

Thanks,

Andrew