修复字节outofMemory Android

时间:2012-07-18 21:03:33

标签: java android exception memory

我正在尝试修复具有以下功能的应用程序中的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可以接受我的函数,我的意思是我想知道新字节中的参数 - “位”限制[位] ; 。请教育我..任何建议将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

您应该使用getMemoryClass()来查找限制,而不是指定幻数。