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写入缓冲区解决了问题。另外,请不要回答,这样人们就会知道这是解决办法。