2017-10-20 39 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