I'm trying to grasp what's actually happening still but the short of it is I have a WebView which tries to load a flash file (audio/video embed) then hangs for a moment before the entire app crashes to the home screen.
I do understand flash is no longer officially supported but to my knowledge for the moment Flash still sideloads fine even on other devices that are current.
After getting a hold of a person with an S4 and grabbing the adb log output I've come across something about Android that's over my head. It seems to say that Flash plugin is attempting to use /system/lib/libmedia.so and runs into an error that ends it completely. Our whole app goes with it however instead of ending up with a blank WebView.
The player embed is actually correctly loading on the S4 up until it tries to play. In the first trial no crash occurred and the video played fine but lacked any audio. Then relaunching the app for a second trial (and every time after) it would instead run into this error and crash the app entirely.
(Here's a condensed paste of the stack/log that I have. I'm trimming off a lot on the top that's just a few hundred lines of raw memory.)
05-28 16:12:33.722: D/CrashAnrDetector(762): Build: samsung/jfltespr/jfltespr:4.2.2/JDQ39/L720VPUAMDL:user/release-keys
05-28 16:12:33.722: D/CrashAnrDetector(762): Hardware: MSM8960
05-28 16:12:33.722: D/CrashAnrDetector(762): Revision: 11
05-28 16:12:33.722: D/CrashAnrDetector(762): Bootloader: L720VPUAMDL
05-28 16:12:33.722: D/CrashAnrDetector(762): Radio: unknown
05-28 16:12:33.722: D/CrashAnrDetector(762): Kernel: Linux version 3.4.0-529760 (se.infra@SEP-107) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #1 SMP PREEMPT Sat Apr 27 18:12:21 KST 2013
05-28 16:12:33.722: D/CrashAnrDetector(762): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-28 16:12:33.722: D/CrashAnrDetector(762): Build fingerprint: 'samsung/jfltespr/jfltespr:4.2.2/JDQ39/L720VPUAMDL:user/release-keys'
05-28 16:12:33.722: D/CrashAnrDetector(762): Revision: '11'
05-28 16:12:33.722: D/CrashAnrDetector(762): pid: 26307, tid: 26445, name: FP_SoundMixPoll >>> {package_name} <<<
05-28 16:12:33.722: D/CrashAnrDetector(762): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0000011e
05-28 16:12:33.722: D/CrashAnrDetector(762): r0 0000011e r1 70d6fbb0 r2 00000001 r3 74ffded7
05-28 16:12:33.722: D/CrashAnrDetector(762): r4 0000011e r5 00000086 r6 00000004 r7 7c1c2000
05-28 16:12:33.722: D/CrashAnrDetector(762): r8 7c1c2000 r9 795d9341 sl 79a6c068 fp 7c1c3d30
05-28 16:12:33.722: D/CrashAnrDetector(762): ip 40e35c28 sp 7fa79d00 lr 40dec31b pc 402926f8 cpsr 20000010
05-28 16:12:33.722: D/CrashAnrDetector(762): d0 e636e262e4ede0a8 d1 e30de5a4e57ce5af
05-28 16:12:33.722: D/CrashAnrDetector(762): d2 e1cde7efe150e5da d3 e4ace1bbe371e65d
05-28 16:12:33.722: D/CrashAnrDetector(762): d4 e640e57de585e16d d5 e4ebe7cce608e7f6
05-28 16:12:33.722: D/CrashAnrDetector(762): d6 e525e756e494e755 d7 e602e9d3e55ce84f
05-28 16:12:33.722: D/CrashAnrDetector(762): d8 41d46943ec4309a6 d9 41d46943ec463cd9
05-28 16:12:33.722: D/CrashAnrDetector(762): d10 0000000000000000 d11 0000000000000000
05-28 16:12:33.722: D/CrashAnrDetector(762): d12 0000000000000000 d13 0000000000000000
05-28 16:12:33.722: D/CrashAnrDetector(762): d14 0000000000000000 d15 0000000000000000
05-28 16:12:33.722: D/CrashAnrDetector(762): d16 f754f627f520f4e5 d17 f7bbf60df810f6e0
05-28 16:12:33.722: D/CrashAnrDetector(762): d18 f4f2f89bf676f700 d19 f7fbf7f0f57ef7ec
05-28 16:12:33.722: D/CrashAnrDetector(762): d20 f71bf799f90cf96e d21 f4b6f485f4acf3bc
05-28 16:12:33.722: D/CrashAnrDetector(762): d22 f73ffbc6f67df961 d23 f6c2f746f6e2f9d8
05-28 16:12:33.722: D/CrashAnrDetector(762): d24 0000000000000000 d25 0000000000000000
05-28 16:12:33.722: D/CrashAnrDetector(762): d26 3ff0000000000000 d27 0000000000000000
05-28 16:12:33.722: D/CrashAnrDetector(762): d28 0000000000000000 d29 0000000000000000
05-28 16:12:33.722: D/CrashAnrDetector(762): d30 0000000000000000 d31 0000000000000000
05-28 16:12:33.722: D/CrashAnrDetector(762): scr 6800001b
05-28 16:12:33.722: D/CrashAnrDetector(762): backtrace:
05-28 16:12:33.722: D/CrashAnrDetector(762): #00 pc 0000d6f8 /system/lib/libc.so
05-28 16:12:33.722: D/CrashAnrDetector(762): #01 pc 0004c317 /system/lib/libmedia.so
05-28 16:12:33.722: D/CrashAnrDetector(762): #02 pc 0004c57f /system/lib/libmedia.so (android::AudioTrack::stopped() const+10)
05-28 16:12:33.722: D/CrashAnrDetector(762): #03 pc 0053fb35 /data/app-lib/com.adobe.flashplayer-1/libflashplayer.so
05-28 16:12:33.722: D/CrashAnrDetector(762): stack:
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79cc0 40292898 /system/lib/libc.so (pthread_mutex_lock)
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79cc4 7c1c3d40
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79cc8 79a6c068 /data/app-lib/com.adobe.flashplayer-1/libflashplayer.so
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79ccc 7c1c3a04
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79cd0 7c1c3d40
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79cd4 798645cd /data/app-lib/com.adobe.flashplayer-1/libflashplayer.so
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79cd8 7c1c3d40
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79cdc 7950b867 /data/app-lib/com.adobe.flashplayer-1/libflashplayer.so
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79ce0 7c1c3d40
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79ce4 7984ff75 /data/app-lib/com.adobe.flashplayer-1/libflashplayer.so
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79ce8 7c1c2000
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79cec 79a6c068 /data/app-lib/com.adobe.flashplayer-1/libflashplayer.so
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79cf0 7c1c39d4
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79cf4 00000060
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79cf8 df002777
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79cfc e3a070ad
05-28 16:12:33.722: D/CrashAnrDetector(762): #00 7fa79d00 74ffded7 /system/lib/libwebcore.so
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d04 0000011e
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d08 00000086
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d0c 00000004
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d10 7c1c2000
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d14 40dec31b /system/lib/libmedia.so
05-28 16:12:33.722: D/CrashAnrDetector(762): #01 7fa79d18 74ffded7 /system/lib/libwebcore.so
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d1c 40dec583 /system/lib/libmedia.so (android::AudioTrack::stopped() const+14)
05-28 16:12:33.722: D/CrashAnrDetector(762): #02 7fa79d20 74ffded7 /system/lib/libwebcore.so
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d24 7c1c3d00
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d28 7c1c3a20
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d2c 7984fb37 /data/app-lib/com.adobe.flashplayer-1/libflashplayer.so
05-28 16:12:33.722: D/CrashAnrDetector(762): #03 7fa79d30 71c28fa0
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d34 79a6c068 /data/app-lib/com.adobe.flashplayer-1/libflashplayer.so
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d38 00005ecc
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d3c 7c1c3d00
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d40 7c1c3d48
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d44 7c1c2000
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d48 79ac1bb4
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d4c 7c1c3d60
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d50 7983fcd5 /data/app-lib/com.adobe.flashplayer-1/libflashplayer.so
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d54 000097ec
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d58 00009b94
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d5c 00007be0
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d60 4278f501 /dev/ashmem/dalvik-heap (deleted)
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d64 00003204
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d68 ec4309a6
05-28 16:12:33.722: D/CrashAnrDetector(762): 7fa79d6c 41d46943 /dev/ashmem/dalvik-heap (deleted)
05-28 16:12:33.722: D/CrashAnrDetector(762): memory near r1:
05-28 16:12:33.722: D/CrashAnrDetector(762): 70d6fb90 402cfc64 402cfc64 00000028 00000013
05-28 16:12:33.722: D/CrashAnrDetector(762): 70d6fba0 61776c61 ea007379 e1a00000 00000033
05-28 16:12:33.722: D/CrashAnrDetector(762): 70d6fbb0 0000
The one line with android::AudioTrack::stopped() const+14
is what stands out to me but I'll tack on I'm not familiar with this kind of output for a bug. I searched around about libmedia.so and my understanding so far is that different roms might have different versions of this library and whatever flash uses it for has been changed in the S4. Could be audio or video I suppose but I did have a trail where video somehow worked fine in silence.
So is it that Samsung modified (and seemingly broke) a library of Android in their stock rom or am I greatly misunderstanding this? At the moment it looks like I can't do anything to fix our app but I don't even know, what does all this mean?