Android 录音棒棒糖崩溃
我有一个崩溃在我的应用程序只是在棒棒糖,是完美的工作与以前的版本。我明白了这一点:Android 录音棒棒糖崩溃,android,Android,我有一个崩溃在我的应用程序只是在棒棒糖,是完美的工作与以前的版本。我明白了这一点: F/libc (25307): Fatal signal 7 (SIGBUS), code 2, fault addr 0x993b260c in tid 25750 (pool-16-thread-) I/DEBUG (14112): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** I/DEBUG (14112): B
F/libc (25307): Fatal signal 7 (SIGBUS), code 2, fault addr 0x993b260c in tid 25750 (pool-16-thread-)
I/DEBUG (14112): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG (14112): Build fingerprint: 'google/hammerhead/hammerhead:5.0/LRX21O/1570415:user/release-keys'
I/DEBUG (14112): Revision: '11'
I/DEBUG (14112): ABI: 'arm'
I/DEBUG (14112): pid: 25307, tid: 25750, name: pool-16-thread- >>> de.shopnow <<<
I/DEBUG (14112): signal 7 (SIGBUS), code 2 (BUS_ADRERR), fault addr 0x993b260c
I/DEBUG (14112): r0 993b260c r1 8fd03344 r2 000006fc r3 00000004
I/DEBUG (14112): r4 00001500 r5 00000000 r6 993b2d0c r7 9e8ed640
I/DEBUG (14112): r8 00000700 r9 b591bd0c sl 8d1ff7d4 fp 00000000
I/DEBUG (14112): ip 80000000 sp 8d1ff7c0 lr b58da9b7 pc b6f4cef8 cpsr 800b0030
I/DEBUG (14112):
I/DEBUG (14112): backtrace:
I/DEBUG (14112): #00 pc 00012ef8 /system/lib/libc.so (__memcpy_base+59)
I/DEBUG (14112): #01 pc 000569b3 /system/lib/libmedia.so (android::AudioRecord::read(void*, unsigned int)+82)
I/DEBUG (14112): #02 pc 00095dbb /system/lib/libandroid_runtime.so
I/DEBUG (14112): #03 pc 00270fd7 /data/dalvik-cache/arm/system@framework@boot.oat
W/debuggerd(14112): type=1400 audit(0.0:278): avc: denied { read } for name="kgsl-3d0" dev="tmpfs" ino=6205 scontext=u:r:debuggerd:s0 tcontext=u:object_r:gpu_device:s0 tclass=chr_file
W/debuggerd(14112): type=1400 audit(0.0:279): avc: denied { read } for name="kgsl-3d0" dev="tmpfs" ino=6205 scontext=u:r:debuggerd:s0 tcontext=u:object_r:gpu_device:s0 tclass=chr_file
W/AudioFlinger( 185): RecordThread: buffer overflow
F/libc(25307):tid 25750(池-16-线程-)中的致命信号7(SIGBUS),代码2,故障地址0x993b260c
I/DEBUG(14112):************************************************
I/DEBUG(14112):构建指纹:“google/hammerhead/hammerhead:5.0/LRX21O/1570415:用户/释放密钥”
I/DEBUG(14112):修订版:“11”
I/DEBUG(14112):ABI:'arm'
I/DEBUG(14112):pid:25307,tid:25750,name:pool-16-thread->>>de.shopnow我和你有同样的问题,在重写录音代码后崩溃停止了
以下是我为解决此问题所采取的步骤:
确保不要将字节
大小与短
大小混淆。从返回的结果在byte
s中,在中设置缓冲区大小的值也在byte
s中
我从对所有数据使用一个数组(并使用偏移量)切换到使用单独的缓冲区,我不知道这是否解决了问题,但您也可以尝试一下
我建议您下次附加一些代码。它可以帮助人们轻松地回答您的问题(例如,我可以在您的代码中找到可能导致此问题的潜在缺陷)
编辑:
正如在评论中提到的,这是一个可以找到的开放问题,因此解决这个问题的方法是答案中提到的第二步。你能展示build.gradle吗?这是一个maven项目,你想知道什么?你的录音缓冲区大小是多少?你试过改变它吗?是的,我试过增加它,但也有同样的问题。正如我所说的,在棒棒糖中发生了这个崩溃,所以很奇怪,read方法有时会将sizeInShorts
的2倍写入数组<代码>读取(short[]audioData,int offsetInShorts,int sizeInShorts)
目前我不知道发生这种情况的原因或时间,但使用所需缓冲区大小的2倍确实有效。感谢您的回答!我不能在这里添加代码。我发现了问题。我没有机会尝试解决这个问题。希望他们能在下一版本中解决这个错误。很高兴知道这是一个已知的问题。因此,可能是我切换到使用偏移量0写入缓冲区解决了问题。另外,请不要回答,这样人们就会知道这是解决办法。