我的Android进阶之旅------>Android解决异常: startRecording() called on an uninitialized AudioRecord.

简介: 今天使用AudioRecord进行录音操作时候,报了下面的异常。E/AndroidRuntime(22775): java.lang.IllegalStateException: startRecording() called on an uninitialized AudioRecord.

今天使用AudioRecord进行录音操作时候,报了下面的异常。

E/AndroidRuntime(22775): java.lang.IllegalStateException: startRecording() called on an uninitialized AudioRecord.

E/        (  357): Request requires android.permission.RECORD_AUDIO
E/AudioFlinger(  357): openRecord() permission denied: recording not allowed
E/AudioRecord(22775): AudioFlinger could not create record track, status: -1
E/AudioRecord-JNI(22775): Error creating AudioRecord instance: initialization check failed with status -1.
E/android.media.AudioRecord(22775): Error code -20 when initializing native AudioRecord object.
D/AndroidRuntime(22775): Shutting down VM
E/AndroidRuntime(22775): FATAL EXCEPTION: main
E/AndroidRuntime(22775): Process: com.example.aac_pcm, PID: 22775
E/AndroidRuntime(22775): java.lang.IllegalStateException: startRecording() called on an uninitialized AudioRecord.
E/AndroidRuntime(22775):        at android.media.AudioRecord.startRecording(AudioRecord.java:629)
E/AndroidRuntime(22775):        at com.example.aac_pcm.AccActivity$1.onClick(AccActivity.java:42)
E/AndroidRuntime(22775):        at android.view.View.performClick(View.java:4848)
E/AndroidRuntime(22775):        at android.view.View$PerformClick.run(View.java:20262)
E/AndroidRuntime(22775):        at android.os.Handler.handleCallback(Handler.java:815)
E/AndroidRuntime(22775):        at android.os.Handler.dispatchMessage(Handler.java:104)
E/AndroidRuntime(22775):        at android.os.Looper.loop(Looper.java:194)
E/AndroidRuntime(22775):        at android.app.ActivityThread.main(ActivityThread.java:5637)
E/AndroidRuntime(22775):        at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(22775):        at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(22775):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
E/AndroidRuntime(22775):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)

根据异常提示,需要android.permission.RECORD_AUDIO权限,原来是少配置了权限。

在AndroidManifest.xml中配置权限即可。

        <!-- 录音权限 -->
	<uses-permission android:name="android.permission.RECORD_AUDIO" /> 



PS: 转眼过去那么久,Android 系统已经升级到了Android 7.x 系列了,在Android 6.0 系统之后就增加了运行时权限处理机制,因此有可能你在AndroidManifest.xml中配置了录音(RECODE_AUDIO)权限也没有用,移入会报此错误。这个时候你需要在代码中先判断是否录音(RECODE_AUDIO)权限授权了再使用AudioRecord做相关操作。如果没有授权,请做授权的相关操作,然后再回调方法中再判断是否授权成功,如果授权成功再使用AudioRecord做相关操作。否则会报错的。


运行时权限相关参考文档:

http://blog.csdn.net/lmj623565791/article/details/50709663

http://blog.csdn.net/yanzhenjie1003/article/details/52503533/

http://www.jianshu.com/p/e1ab1a179fbb


读者可以参考上述链接,为APP增加运行时权限处理机制。



        ====================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址http://blog.csdn.net/ouyang_peng

====================================================================================





相关文章
|
3天前
|
API Android开发
Android高手进阶教程(十五)之---通过Location获取Address的使用!
Android高手进阶教程(十五)之---通过Location获取Address的使用!
|
3天前
|
Android开发
android捕获全局异常,并对异常做出处理
android捕获全局异常,并对异常做出处理
12 4
|
5天前
|
Android开发
android 12 U盘 /mnt/media_rw 下读取文件异常 没有权限
android 12 U盘 /mnt/media_rw 下读取文件异常 没有权限
10 0
|
20天前
|
存储 安全 文件存储
Android OTA升级后输入法异常和应用丢失的分析
Android OTA升级后输入法异常和应用丢失的分析
20 1
|
9月前
|
数据库 Android开发 数据库管理
java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常
java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常
228 0
|
8月前
|
编解码 网络协议 Android开发
Android平台RTMP|RTSP直播播放器功能进阶探讨
很多开发者在跟我聊天的时候,经常问我,为什么一个RTMP或RTSP播放器,你们需要设计那么多的接口,真的有必要吗?带着这样的疑惑,我们今天聊聊Android平台RTMP、RTSP播放器常规功能,如软硬解码设置、实时音量调节、实时快照、实时录像、视频view翻转和旋转、画面填充模式设定、解码后YUV、RGB数据回调等:
111 0
|
9月前
|
Android开发
Android > Project with path ‘:audiovisualize‘ could not be found in project ‘:app‘. 异常解决方案
Android > Project with path ‘:audiovisualize‘ could not be found in project ‘:app‘. 异常解决方案
44 0
|
12月前
|
JSON Android开发 数据格式
Android:解析Json异常 Expected a string but was BEGIN_OBJECT at
今天解析后端数据时,发现了这个报错:Expected BEGIN_OBJECT but was STRING at 看来是自己哪儿解析错误了。 因为数据的特殊性,后端返回的Json串里面可能还会有Json数据,可能嵌套了三次层,
|
12月前
|
Android开发
Android oppo手机显示安装包异常(Bug6)
Android oppo手机显示安装包异常(Bug6)
|
Web App开发 编解码 前端开发
Android | 音视频方向进阶路线及资源合集
但是系统相机和系统控件VideoView的局限性都是可定制型太差,系统相机的图像分辨率,视频码率以及VideoView的进度条等.
165 0