The Android L release has a bug in SoundPool. I want to know how I can fix it.
The error occurs when I Release a sound resource using SoundPool.release(). It gets stuck in this function.
Here are parts of the log from traces.txt:
native: #00 pc 00012c00 /system/lib/libc.so (short+28)
native: #01 pc 000159dd /system/lib/libc.so (__pthread_cond_timedwait_relative(pthread_cond_t*, pthread_mutex_t*, timespec const*)+52)
native: #02 pc 00172660 [heap] (???)
at android.media.SoundPool$SoundPoolImpl.release(Native method)
at android.media.SoundPool.release(SoundPool.java:405)***
Related
I am currently attempting to develop a cross-platform mobile app using Xamarin.forms. As a part of this application I need to include a 3rd party .framework in my Xamarin.iOS project. I have successfully created a Xamarin.iOS Bindings Library .dll and included it in my project. I am able to reference the library and compile without errors, however when I attempt to deploy the app to the iPhone simulator the app will start and then crash with a “Failed to install” message.
Error Message
If I remove any lines of code which reference this .dll the app will run fine.
Does anyone have any insight on how to solve this?
Potentially useful information:
I am developing in Visual Studio for Windows
Xamarin version: 16.7.000.440
Xamarin.iOS version: 13.20.2.2
XCode version: 12.0.1
iOS version: 14.0
Device Crash Log:
Incident Identifier: 882D82AB-5511-48C1-AFCD-4B86933B2A5C
CrashReporter Key: 1cc59f0bc819c0d806e2c1ccdf7b24a413699a4f
Hardware Model: iPad7,11
Process: MyApp.iOS [452]
Path: /private/var/containers/Bundle/Application/A31E102C-4BB8-431A-ABDF-E17A503E1778/MyApp.iOS.app/MyApp.iOS
Identifier: com.Crossroads.MyApp
Version: 1.0 (1.0)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.Crossroads.MyApp [614]
Date/Time: 2020-10-16 09:46:53.9542 -0500
Launch Time: 2020-10-16 09:46:53.9106 -0500
OS Version: iPhone OS 13.5.1 (17F80)
Release Type: User
Baseband Version: n/a
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Description: DYLD, dependent dylib '#rpath/MyFramework.framework/MyFramework' not found for '/private/var/containers/Bundle/Application/A31E102C-4BB8-431A-ABDF-E17A503E1778/MyApp.iOS.app/MyApp.iOS', tried but didn't find: '#rpath/MyFramework.framework/MyFramework' '/System/Library/Frameworks/MyFramework.framework/MyFramework'
Highlighted by Thread: 0
Backtrace not available
Unknown thread crashed with ARM Thread State (64-bit):
x0: 0x0000000000000006 x1: 0x0000000000000001 x2: 0x000000016b701390 x3: 0x00000000000000c7
x4: 0x000000016b700f90 x5: 0x0000000000000000 x6: 0x0000000000000000 x7: 0x0000000000000000
x8: 0x0000000000000020 x9: 0x0000000000000009 x10: 0x6f4d706163617461 x11: 0x656b6f54656c6962
x12: 0x6f77656d6172662e x13: 0x63617461442f6b72 x14: 0x656c69626f4d7061 x15: 0x0020276e656b6f54
x16: 0x0000000000000209 x17: 0x0000000000000000 x18: 0x0000000000000000 x19: 0x0000000000000000
x20: 0x000000016b700f90 x21: 0x00000000000000c7 x22: 0x000000016b701390 x23: 0x0000000000000001
x24: 0x0000000000000006 x25: 0x0000000106cd4000 x26: 0x0000000000000001 x27: 0x0000000106cd4000
x28: 0x0000000000000000 fp: 0x000000016b700f60 lr: 0x0000000106cbbee8
sp: 0x000000016b700f20 pc: 0x0000000106cb4f68 cpsr: 0x00000000
esr: 0x00000000 Address size fault
Binary images description not available
Error Formulating Crash Report:
Failed to create CSSymbolicatorRef - corpse still valid ¯\_(ツ)_/¯
EOF
From the apple document, the errors means you have linked the frame while does not ember it.
The app crashes at launch, because the dynamic linker can’t locate the
missing framework.
So what you need to do is ember the framework and here is the document you can refer:
Linking the dependencies
binding-objective-c
Google Play reports crashes in my NDK native Android app.
These reports include a callstack.
Good so far, but I would like to know line numbers as well, not just which function it crashed in.
Example report from Google Play:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.steenriver.buggy <<<
backtrace:
#00 pc 00000000001cf97c /data/app/com.steenriver.buggy-1/lib/arm/libbuggy.so (SoundEngineStart+1500)
#01 pc 00000000001cc7f8 /data/app/com.steenriver.buggy-1/lib/arm/libbuggy.so
#02 pc 00000000001e42f8 /data/app/com.steenriver.buggy-1/lib/arm/libbuggy.so (_Z7nfy_msgPKc+120)
#03 pc 00000000001d657c /data/app/com.steenriver.buggy-1/lib/arm/libbuggy.so
#04 pc 00000000001e42f8 /data/app/com.steenriver.buggy-1/lib/arm/libbuggy.so (_Z7nfy_msgPKc+120)
#05 pc 00000000001c4ae0 /data/app/com.steenriver.buggy-1/lib/arm/libbuggy.so (_Z14view_touchDowniiPiPfS0_+824)
#06 pc 00000000001465a8 /data/app/com.steenriver.buggy-1/lib/arm/libbuggy.so
#07 pc 00000000001f3d18 /data/app/com.steenriver.buggy-1/lib/arm/libbuggy.so
#08 pc 0000000000145b8c /data/app/com.steenriver.buggy-1/lib/arm/libbuggy.so (android_main+368)
#09 pc 00000000001f3b84 /data/app/com.steenriver.buggy-1/lib/arm/libbuggy.so
#10 pc 0000000000046eb3 /system/lib/libc.so (_ZL15__pthread_startPv+22)
#11 pc 0000000000019acd /system/lib/libc.so (__start_thread+6)
I would like to know which line number SoundEngineStart+1500 maps to.
I did find the utility ndk-stack but if I feed it my crash, there are no line numbers shown, and ndk-stack just passes through the crash info as-is.
My NDK binary is build in latest AndroidStudio using cmake external build. I do not use any obfuscation like proguard.
I remote(chrome remote) to my desktop which runs android studio. When I try to run the emulator from android studio, i see the window with the virtual device open. But the device doesn't power on. This is not the behavior when I use the desktop directly to run the android project. Could this behavior be because of the remoting? If so how do i change it?
My need is to work on android studio on a remote connection, if there is a way to achieve it, kindly advise.
This is the AVD log
C:\Users\xxx\AppData\Local\Android\sdk\tools\emulator.exe -avd Nexus_5_API_21 -netspeed full -netdelay none
emulator: device fd:1228
HAX is working and emulator runs in fast virt mode
creating window 61 83 462 820
logcat
04-29 12:06:39.077 1966-1966/com.example.xxx.four4 E/libprocessgroup﹕ failed to make and chown /acct/uid_10053: Read-only file system
04-29 12:06:39.077 1966-1966/com.example.xxx.four4 W/Zygote﹕ createProcessGroup failed, kernel missing CONFIG_CGROUP_CPUACCT?
04-29 12:06:39.078 1966-1966/com.example.xxx.four4 I/art﹕ Not late-enabling -Xcheck:jni (already on)
04-29 12:06:39.183 1966-1986/com.example.xxx.four4 D/OpenGLRenderer﹕ Render dirty regions requested: true
04-29 12:06:39.186 1966-1966/com.example.xxx.four4 D/﹕ HostConnection::get() New Host Connection established 0xa607f4c0, tid 1966
04-29 12:06:39.319 1966-1966/com.example.xxx.four4 D/Atlas﹕ Validating map...
04-29 12:06:40.050 1966-1966/com.example.xxx.four4 I/Choreographer﹕ Skipped 42 frames! The application may be doing too much work on its main thread.
04-29 12:06:40.184 1966-1986/com.example.xxx.four4 D/﹕ HostConnection::get() New Host Connection established 0xa607fa60, tid 1986
04-29 12:06:40.231 1966-1986/com.example.xxx.four4 I/OpenGLRenderer﹕ Initialized EGL, version 1.4
04-29 12:06:40.469 1966-1986/com.example.xxx.four4 D/OpenGLRenderer﹕ Enabling debug mode 0
04-29 12:06:40.521 1966-1986/com.example.xxx.four4 W/EGL_emulation﹕ eglSurfaceAttrib not implemented
04-29 12:06:40.521 1966-1986/com.example.xxx.four4 W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa6083580, error=EGL_SUCCESS
04-29 12:07:12.637 1966-1973/com.example.xxx.four4 W/art﹕ Suspending all threads took: 13.570ms
Thanks.
I have the same issue using a remote desktop. I solved it using another remote access application TeamViewer (http://teamviewer.com)
Using TeamViewer you can run any Android Emulator like x86, x86_64 or arm.
The Android emulator is not using all of your cpu capabilities but rather a single thread and my guess is that the remote desktop and the emulator are sharing the same thread thus preventing from your emulator to run while using the remote desktop. the solution is to use a stronger cpu or a different remote desktop as user2839592 said.
After adding the libraries to the project and instantiating everything according to the getting started guide (http://developer.skobbler.com/getting-started/android#) and the demo (http://developer.skobbler.com/support#download) I am running into some strange problems.
After adding the SKMapViewHolder to an activity, the app crashes and logcat returns the following:
06-05 14:22:48.388 1976-2013/com.x.app E/Adreno-ES11﹕ <qglDrvAPI_glDeleteTextures:371>: GL_INVALID_VALUE
06-05 14:22:48.388 1976-2013/com.x.app A/libc﹕ Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1), thread 2013 (Thread-885)
This is happening on a USB Nexus 5 and N5 emulator. On running it with an N7 (2012) emulator it's just returning the second libc error.
Given a linux kernel oops, how do you go about diagnosing the problem? In the output I can see a stack trace which seems to give some clues. Are there any tools that would help find the problem? What basic procedures do you follow to track it down?
Unable to handle kernel paging request for data at address 0x33343a31
Faulting instruction address: 0xc50659ec
Oops: Kernel access of bad area, sig: 11 [#1]
tpsslr3
Modules linked in: datalog(P) manet(P) vnet wlan_wep wlan_scan_sta ath_rate_sample ath_pci wlan ath_hal(P)
NIP: c50659ec LR: c5065f04 CTR: c00192e8
REGS: c2aff920 TRAP: 0300 Tainted: P (2.6.25.16-dirty)
MSR: 00009032 CR: 22082444 XER: 20000000
DAR: 33343a31, DSISR: 20000000
TASK = c2e6e3f0[1486] 'datalogd' THREAD: c2afe000
GPR00: c5065f04 c2aff9d0 c2e6e3f0 00000000 00000001 00000001 00000000 0000b3f9
GPR08: 3a33340a c5069624 c5068d14 33343a31 82082482 1001f2b4 c1228000 c1230000
GPR16: c60f0000 000004a8 c59abbe6 0000002f c1228360 c340d6b0 c5070000 00000001
GPR24: c2aff9e0 c5070000 00000000 00000000 00000003 c2cc2780 c2affae8 0000000f
NIP [c50659ec] mesh_packet_in+0x3d8/0xdac [manet]
LR [c5065f04] mesh_packet_in+0x8f0/0xdac [manet]
Call Trace:
[c2aff9d0] [c5065f04] mesh_packet_in+0x8f0/0xdac [manet] (unreliable)
[c2affad0] [c5061ff8] IF_netif_rx+0xa0/0xb0 [manet]
[c2affae0] [c01925e4] netif_receive_skb+0x34/0x3c4
[c2affb10] [c60b5f74] netif_receive_skb_debug+0x2c/0x3c [wlan]
[c2affb20] [c60bc7a4] ieee80211_deliver_data+0x1b4/0x380 [wlan]
[c2affb60] [c60bd420] ieee80211_input+0xab0/0x1bec [wlan]
[c2affbf0] [c6105b04] ath_rx_poll+0x884/0xab8 [ath_pci]
[c2affc90] [c018ec20] net_rx_action+0xd8/0x1ac
[c2affcb0] [c00260b4] __do_softirq+0x7c/0xf4
[c2affce0] [c0005754] do_softirq+0x58/0x5c
[c2affcf0] [c0025eb4] irq_exit+0x48/0x58
[c2affd00] [c000627c] do_IRQ+0xa4/0xc4
[c2affd10] [c00106f8] ret_from_except+0x0/0x14
--- Exception: 501 at __delay+0x78/0x98
LR = cfi_amdstd_write_buffers+0x618/0x7ac
[c2affdd0] [c0163670] cfi_amdstd_write_buffers+0x504/0x7ac (unreliable)
[c2affe50] [c015a2d0] concat_write+0xe4/0x140
[c2affe80] [c0158ff4] part_write+0xd0/0xf0
[c2affe90] [c015bdf0] mtd_write+0x170/0x2a8
[c2affef0] [c0073898] vfs_write+0xcc/0x16c
[c2afff10] [c0073f2c] sys_write+0x4c/0x90
[c2afff40] [c0010060] ret_from_syscall+0x0/0x38
--- Exception: c01 at 0xfd98a50
LR = 0x10003840
Instruction dump:
419d02a0 98010009 800100a4 2f800003 419e0508 2f170000 419a0098 3d20c507
a0e1002e 81699624 39299624 7f8b4800 419e007c a0610016 7d264b78
Kernel panic - not syncing: Fatal exception in interrupt
Rebooting in 1 seconds..
An Oops gives a bunch of information useful in diagnosing a crash. It starts with the address of the crash, the reason ("access of bad area") and the contents of the registers. The call trace answers the question "how did we get here". The first item in the list happened most recently. Working backwards, an interrupt happened (do_IRQ) because the Atheros WiFi adapter received a packet (ath_rx_poll). The routine passed it to the generic WiFi code (ieee80211_input) which in turn passed it up to the network stack (netif_receive_skb).
To figure out the exact code causing the problem, you can run
gdb /usr/src/linux/vmlinux
and then disassemble the function in question, which might be mesh_packet_in(). Might, because the faulting instruction (0xc50659ec) looks to be outside of mesh_packet_in() (0xc5065f04). You might also try the gdb command
(gdb) info line 0xc50659ec
to figure out which function contains this address.
You should first try to find the source of the code that has crashed. In the specific case, the analysis claims that the crash happened in mesh_packet_in of the manet driver, at offset 0x8f0. It also reports that the instructions at this point are 419d02a0 98010009 ... So inspect the module with "objdump -d", to confirm whether the function/offset reported is correct. Then check the source for what it is doing; you can use the registers list to confirm again that you are looking at the right instruction.
When you know what C statement is faulting, you need to read the source to find out where the bogus data were coming from.
http://oss.sgi.com/projects/kdb/
Install this into your kernel, then when it Oops's, you'll be thrown into a gdb-like interface that you can poke around with. However, it looks like the manet module is deref'ing a bad pointer.