消费者关闭输入通道或发生错误
Posted
技术标签:
【中文标题】消费者关闭输入通道或发生错误【英文标题】:Consumer closed input channel or an error occur 【发布时间】:2011-09-04 14:13:36 【问题描述】:我正在开发一个 android 应用程序,它会打开 MIC 源并记录来自麦克风的音频。我在后台运行了另一个单独的线程,它会定期(每 1 秒)清除保存来自麦克风的音频输入的 ArrayList
它可以正常工作大约 5 到 7 分钟,我收到这样的错误消息
Consumer closed input channel or an error occur...
应用程序被终止。在我收到错误消息之前,它会显示此消息并终止应用程序。如何解决此问题以及可能导致此错误的原因是什么? 提前致谢。
05-26 18:51:08.137: INFO/DEBUG(2894): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-26 18:51:08.137: INFO/DEBUG(2894): Build fingerprint: 'google/passion_kt/passion:2.3.3/GRI40/49208:user/release-keys'
05-26 18:51:08.137: INFO/DEBUG(2894): pid: 2956, tid: 2956 >>> com.company.app.p2p <<<
05-26 18:51:08.137: INFO/DEBUG(2894): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 45088dbc
05-26 18:51:08.137: INFO/DEBUG(2894): r0 42089000 r1 ffffffff r2 00000000 r3 ffffffff
05-26 18:51:08.137: INFO/DEBUG(2894): r4 20000000 r5 e8001200 r6 40009228 r7 00000001
05-26 18:51:08.137: INFO/DEBUG(2894): r8 4051a3f8 r9 800a5600 10 80000000 fp 00000001
05-26 18:51:08.137: INFO/DEBUG(2894): ip 00bfff6f sp beb28d08 lr 80036028 pc 80035938 cpsr a0000010
05-26 18:51:08.137: INFO/DEBUG(2894): d0 0000000000056b17 d1 6c675f6c6c6f7200
05-26 18:51:08.137: INFO/DEBUG(2894): d2 6d6172662f6d6528 d3 72662f6b726f7707
05-26 18:51:08.137: INFO/DEBUG(2894): d4 0000000000000000 d5 0000000000000000
05-26 18:51:08.137: INFO/DEBUG(2894): d6 0000000000000000 d7 4080000000000000
05-26 18:51:08.137: INFO/DEBUG(2894): d8 0000a27fb5b4b66f d9 4325d5f141400000
05-26 18:51:08.137: INFO/DEBUG(2894): d10 4269198840557fe0 d11 0000000042391988
05-26 18:51:08.137: INFO/DEBUG(2894): d12 0000000000000000 d13 0000000000000000
05-26 18:51:08.137: INFO/DEBUG(2894): d14 0000000000000000 d15 0000000000000000
05-26 18:51:08.137: INFO/DEBUG(2894): d16 002b09c8000000a0 d17 bff0000000000000
05-26 18:51:08.137: INFO/DEBUG(2894): d18 3ff0000000000000 d19 0000000000000000
05-26 18:51:08.137: INFO/DEBUG(2894): d20 0000000000000000 d21 0000000000000000
05-26 18:51:08.137: INFO/DEBUG(2894): d22 3ff0000000000000 d23 0000000000000000
05-26 18:51:08.137: INFO/DEBUG(2894): d24 3ff0000000000000 d25 0000000000000000
05-26 18:51:08.137: INFO/DEBUG(2894): d26 0000000000000000 d27 0000000000000000
05-26 18:51:08.137: INFO/DEBUG(2894): d28 0100010001000100 d29 3ff8000000000000
05-26 18:51:08.137: INFO/DEBUG(2894): d30 0000000000000000 d31 3fe5555555555555
05-26 18:51:08.137: INFO/DEBUG(2894): scr 60000012
05-26 18:51:08.207: INFO/DEBUG(2894): #00 pc 00035938 /system/lib/libdvm.so
05-26 18:51:08.207: INFO/DEBUG(2894): #01 pc 00036024 /system/lib/libdvm.so
05-26 18:51:08.207: INFO/DEBUG(2894): #02 pc 000368cc /system/lib/libdvm.so
05-26 18:51:08.207: INFO/DEBUG(2894): #03 pc 00020350 /system/lib/libdvm.so
05-26 18:51:08.207: INFO/DEBUG(2894): code around pc:
05-26 18:51:08.207: INFO/DEBUG(2894): 80035918 e065c003 e1530007 85803010 e5900000
05-26 18:51:08.207: INFO/DEBUG(2894): 80035928 e1e051ac e1a0c42c e205701f e1a0771b
05-26 18:51:08.207: INFO/DEBUG(2894): 80035938 e790510c e1170005 e1875005 e780510c
05-26 18:51:08.207: INFO/DEBUG(2894): 80035948 1a00000c e5960014 e1530000 35960008
05-26 18:51:08.207: INFO/DEBUG(2894): 80035958 3240c004 3586c008 35003004 e59d3004
05-26 18:51:08.207: INFO/DEBUG(2894): code around lr:
05-26 18:51:08.207: INFO/DEBUG(2894): 80036008 0a000001 e3a02000 eb014474 e596209c
05-26 18:51:08.207: INFO/DEBUG(2894): 80036018 eaffffd1 e1a01005 e1a00006 ebfffe1c
05-26 18:51:08.207: INFO/DEBUG(2894): 80036028 e596102c e3510001 d8bd87f0 e5962058
05-26 18:51:08.207: INFO/DEBUG(2894): 80036038 e3520000 d8bd87f0 e3a04000 e3a0a001
05-26 18:51:08.207: INFO/DEBUG(2894): 80036048 e596305c e7931104 e3510000 0a000020
05-26 18:51:08.207: INFO/DEBUG(2894): stack:
05-26 18:51:08.207: INFO/DEBUG(2894): beb28cc8 00000001
05-26 18:51:08.207: INFO/DEBUG(2894): beb28ccc 4342cbe0
05-26 18:51:08.207: INFO/DEBUG(2894): beb28cd0 000001e4
05-26 18:51:08.207: INFO/DEBUG(2894): beb28cd4 00000004
05-26 18:51:08.207: INFO/DEBUG(2894): beb28cd8 42263150
05-26 18:51:08.207: INFO/DEBUG(2894): beb28cdc 4342cbdb
05-26 18:51:08.207: INFO/DEBUG(2894): beb28ce0 44707fd0
05-26 18:51:08.207: INFO/DEBUG(2894): beb28ce4 8008eb86 /system/lib/libdvm.so
05-26 18:51:08.207: INFO/DEBUG(2894): beb28ce8 00000007
05-26 18:51:08.207: INFO/DEBUG(2894): beb28cec 002d7c02
05-26 18:51:08.207: INFO/DEBUG(2894): beb28cf0 00000007
05-26 18:51:08.207: INFO/DEBUG(2894): beb28cf4 8005e489 /system/lib/libdvm.so
05-26 18:51:08.207: INFO/DEBUG(2894): beb28cf8 42263150
05-26 18:51:08.207: INFO/DEBUG(2894): beb28cfc 00000004
05-26 18:51:08.207: INFO/DEBUG(2894): beb28d00 df002777
05-26 18:51:08.207: INFO/DEBUG(2894): beb28d04 e3a070ad
05-26 18:51:08.207: INFO/DEBUG(2894): #00 beb28d08 80089a63 /system/lib/libdvm.so
05-26 18:51:08.207: INFO/DEBUG(2894): beb28d0c fffffe84
05-26 18:51:08.207: INFO/DEBUG(2894): beb28d10 44707fe4
05-26 18:51:08.207: INFO/DEBUG(2894): beb28d14 4051a518
05-26 18:51:08.207: INFO/DEBUG(2894): beb28d18 40009228
05-26 18:51:08.207: INFO/DEBUG(2894): beb28d1c 4051a3f8
05-26 18:51:08.207: INFO/DEBUG(2894): beb28d20 800a5600
05-26 18:51:08.207: INFO/DEBUG(2894): beb28d24 fffffe84
05-26 18:51:08.207: INFO/DEBUG(2894): beb28d28 00000001
05-26 18:51:08.217: INFO/DEBUG(2894): beb28d2c 0000000c
05-26 18:51:08.217: INFO/DEBUG(2894): beb28d30 4051a400
05-26 18:51:08.217: INFO/DEBUG(2894): beb28d34 80036028 /system/lib/libdvm.so
05-26 18:51:08.217: INFO/DEBUG(2894): #01 beb28d38 00005113
05-26 18:51:08.217: INFO/DEBUG(2894): beb28d3c 40009228
05-26 18:51:08.217: INFO/DEBUG(2894): beb28d40 00511400
05-26 18:51:08.217: INFO/DEBUG(2894): beb28d44 00000000
05-26 18:51:08.217: INFO/DEBUG(2894): beb28d48 400092fc
05-26 18:51:08.217: INFO/DEBUG(2894): beb28d4c 80000000 /system/lib/libdvm.so
05-26 18:51:08.217: INFO/DEBUG(2894): beb28d50 400091e8
05-26 18:51:08.217: INFO/DEBUG(2894): beb28d54 800368d0 /system/lib/libdvm.so
【问题讨论】:
我认为这意味着一些本机代码已经崩溃。调试它并不容易,需要额外的工具,另见this post 或this post 很难从这些崩溃消息中找到问题。也许一些示例代码会有所帮助 【参考方案1】:THelper 是对的,您在问题中粘贴的堆栈跟踪可以通过 python 脚本转换为包含文件名和行号的更友好的格式:
http://code.google.com/p/android-ndk-stacktrace-analyzer/
我在做 NDK 工作时使用它,它为我节省了很多时间。希望对您有所帮助。
【讨论】:
以上是关于消费者关闭输入通道或发生错误的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin 协程Channel 通道 ④ ( Channel 通道的热数据流属性 | Channel 通道关闭过程 | Channel 通道关闭代码示例 )
发生错误时如何暂停或减少 Camel Hazelcast SEDA 消费者的吞吐量
Django 通道 JsonWebsocketConsumer self.send_json() 错误