Android | java.lang.IllegalStateException: 未能创建...

问题来源:

  使用Android编写录音软件进行音频的读写时,当点击开始录音时会闪退,起初我以为是动态权限的问题,于是加了动态权限,但是依旧报错。

报错信息:

Process: com.example.audiosample, PID: 3506
    java.lang.IllegalStateException: 未能创建/storage/emulated/0/reverseme.pcm
        at com.example.audiosample.MainActivity.StartRecord(MainActivity.java:153)
        at com.example.audiosample.MainActivity$2.run(MainActivity.java:113)
        at java.lang.Thread.run(Thread.java:929)
I/Process: Sending signal. PID: 3506 SIG: 9

原因分析:

  后来想了想,进行文件写入时,使用的是getExternalStorageDirectory获取路径,而现在的android已经不存在外部存储这个概念了,因而需要添加一个权限,进行声明:

  android:requestLegacyExternalStorage="true"

  这样的话就可以就行文件的写入了。

原文地址:https://www.cnblogs.com/jlutiger/p/13183882.html