2017-10-20 36 views
0

上使用'new'創建對象時發生內存泄漏。最近我在減少我android源碼上的內存泄漏時,在android

我在Android工作室使用分配跟蹤工具

我的應用程序記錄相機預覽應用

enter image description here

如果你看一下圖片

protected int getOutPutBufferIndex() { 
     IMediaCodec.BufferInfo bufferInfo = new IMediaCodec.BufferInfo(); //here occur memory leak 
     int outputBufferIndex = mediaCodec.dequeueOutputBuffer(bufferInfo, timeout); //get buffer index 
     return outputBufferIndex; 
} 

此方法只返回緩衝區指數。

我猜會發生內存泄漏時使用new

所以我儘量在return outputBufferIndex;

但將分配給從未使用過信息添加創建對象。

併發生內存泄漏不變。

那麼,如何在使用new創建對象時,避免android上的內存泄露?

謝謝。

+0

這看起來並不像'C++',它看起來像'Java'。 – Galik

+0

從這個圖像中,我看到'java'提到。這不是'C++' – PaulMcKenzie

+0

對不起,我添加了提到的錯誤 – chohyunwook

回答

0

嘗試使用MediaCodec.BufferInfo與新的運營商assignment.it應該刪除你的錯誤..

+0

謝謝,'IMediaCodec'覆蓋'MediaCodec。通常,對象清晰我使用'object = null',但我的源不工作。 – chohyunwook