[英]fixing byte outofMemory Android
我正在尝试在具有以下功能的应用程序中修复outofMemory:
public byte[] processByteArray (int bits) throws OutofMemoryError {
byte [] arr =new byte [bits];
//do something and
return arr;
}
我不确定用户为值位提供了什么,因此得到Dalvik异常,说536870812字节分配超过了67108864字节的最大堆大小。
所以,我做了这样的事情,虽然不好,但是现在解决了问题:
在类中私下声明arr并像这样访问内部函数:
public byte[] processByteArray (int bits) throws OutofMemoryError {
if(bits<=67108864) {
byte [] arr =new byte [bits]; //tell me if this is right..!
}
//do something and
return arr;
}
我不确定如何解决此问题,我想知道函数中可以使用的最大限制字节[] arr,我的意思是我想知道新字节[bits]中的参数-“ bits”限制; 。 请教育我。任何建议将不胜感激。 谢谢。
您应该使用getMemoryClass()
获取查找限制,而不是分配幻数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.