ANDROID.UF.MEDIARECORDER

当尝试使用已被释放的资源时,就会报告 UF(使用已释放)问题。ANDROID.UF.MEDIARECORDER 警告表明存在以下尝试:在 MediaRecorder 释放后使用它。

示例 1

复制
     public boolean onKeyDown(final int keyCode, final KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
             MediaRecorder mRecorder = new MediaRecorder();
 
             mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
             mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
             mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
 
             final File file = new File("test.raw");
             if (file.exists()) {
                 mRecorder.release();
             } else {
                 mRecorder.setOutputFile(file.getPath());
             }
 
             mRecorder.start();
             mRecorder.release();
             return true;
         }
         return super.onKeyDown(keyCode, event);
     }

针对第 30 行的代码段报告 ANDROID.UF.MEDIARECORDER,因为尝试使用已释放的 mRecorder(如果输出文件存在)(第 25 行)。

扩展

此检查器可通过 Klocwork 知识库进行扩展。有关详情,请参阅调整 Java 分析。