0

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

4

1 回答 1

1

您应该使用getMemoryClass()来获取限制,而不是分配一个幻数。

于 2012-07-18T21:08:31.247 回答