繁体   English   中英

修复Android内存不足的字节

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM