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 分析。