EN JP CN

ANDROID.UF.MEDIARECORDER

ANDROID.UF.MEDIARECORDER

UF (Use Freed) 問題は、リソースが解放された後にリソースを使用する試みがある場合に報告されます。ANDROID.UF.MEDIARECORDER 警告は、MediaRecorder が解放された後に MediaRecorder の使用を試みていることを示します。

例 1

15     public boolean onKeyDown(final int keyCode, final KeyEvent event) {
16         if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
17             MediaRecorder mRecorder = new MediaRecorder();
18 
19             mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
20             mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
21             mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
22 
23             final File file = new File("test.raw");
24             if (file.exists()) {
25                 mRecorder.release();
26             } else {
27                 mRecorder.setOutputFile(file.getPath());
28             }
29 
30             mRecorder.start();
31             mRecorder.release();
32             return true;
33         }
34         return super.onKeyDown(keyCode, event);
35     }

出力ファイルが存在する場合に解放 (25 行目) される「mRecorder」を使用する試みがあるため、ANDROID.UF.MEDIARECORDER が 30 行目のスニペットに対して報告されます。

拡張機能

このチェッカーは、Klocwork knowledge base (ナレッジベース) を利用して拡張できます。詳細については、Java 解析のチューニングを参照してください。