2017-09-20 10 views
0

私は、オーディオを録音するためにMediaRecorderを使用しようとしています。ファイルを開くことを拒否しています。私はここに他のすべての質問と同様にルートディレクトリに書いていません。Android - 読み取り専用ファイルシステムIOException - ルートに書き込まない

コード:私は持っていない、私のマニフェストファイルで

9-20 07:55:49.919 14394-14394/com.example.brydon.looperpedal W/System.err: java.io.FileNotFoundException: null1: open failed: EROFS (Read-only file system) 
09-20 07:55:49.920 14394-14394/com.example.brydon.looperpedal W/System.err:  at libcore.io.IoBridge.open(IoBridge.java:455) 
09-20 07:55:49.920 14394-14394/com.example.brydon.looperpedal W/System.err:  at java.io.RandomAccessFile.<init>(RandomAccessFile.java:247) 
09-20 07:55:49.920 14394-14394/com.example.brydon.looperpedal W/System.err:  at java.io.RandomAccessFile.<init>(RandomAccessFile.java:128) 
09-20 07:55:49.920 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.media.MediaRecorder.prepare(MediaRecorder.java:1136) 
09-20 07:55:49.920 14394-14394/com.example.brydon.looperpedal W/System.err:  at com.example.brydon.looperpedal.MainActivity.setUpRecorder(MainActivity.java:52) 
09-20 07:55:49.920 14394-14394/com.example.brydon.looperpedal W/System.err:  at com.example.brydon.looperpedal.MainActivity.onCreate(MainActivity.java:38) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.app.Activity.performCreate(Activity.java:6912) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2900) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3008) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.app.ActivityThread.-wrap14(ActivityThread.java) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:102) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.os.Looper.loop(Looper.java:154) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:6688) 
09-20 07:55:49.922 14394-14394/com.example.brydon.looperpedal W/System.err:  at java.lang.reflect.Method.invoke(Native Method) 
09-20 07:55:49.922 14394-14394/com.example.brydon.looperpedal W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) 
09-20 07:55:49.922 14394-14394/com.example.brydon.looperpedal W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358) 
09-20 07:55:49.922 14394-14394/com.example.brydon.looperpedal W/System.err: Caused by: android.system.ErrnoException: open failed: EROFS (Read-only file system) 
09-20 07:55:49.922 14394-14394/com.example.brydon.looperpedal W/System.err:  at libcore.io.Posix.open(Native Method) 
09-20 07:55:49.922 14394-14394/com.example.brydon.looperpedal W/System.err:  at libcore.io.BlockGuardOs.open(BlockGuardOs.java:187) 
09-20 07:55:49.923 14394-14394/com.example.brydon.looperpedal W/System.err:  at libcore.io.IoBridge.open(IoBridge.java:441) 
09-20 07:55:49.923 14394-14394/com.example.brydon.looperpedal W/System.err:  ... 17 more 

baseFilename = getFilesDir().getAbsolutePath() + "/loopRecord"; //returns /data/user/0/com.example.myName.looperpedal/files/loopRecord 
//and then later 
r.setOutputFile(baseFilename + (++numLoops)); 

これはで失敗するprepare()を引き起こし

<uses-permission android:name="android.permission.RECORD_AUDIO"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

私が使用していないが、外部ストレージ、内部ストレージの許可はありますか?

私が持っている解決方法を使用して他の質問はすべて解決されているようですので、私は何が欠けているのか分かりません。

+0

エミュレータまたはリアルデバイスを使用していますか? – Hetfieldan24

+0

実際のデバイス - 私の答えを確認してください、それは簡単な間違いでした。 –

答えて

0

私はスタックトレースを見たことがあります。書き込みしようとしているファイルはnull1です。

私はファイル名をビルドする前にメディアコードを作成しようとしていました。

0

getFilesDir()。getAbsolutePath()pathアプリケーションのみを使用するか、このデータがアプリケーションのみを共有しないようにして、このデータを表示します。

関連する問題