Android应用程序崩溃,由于大量的图像

问题描述:

我正在写一个应用程序,将需要约520小的PNG的。我将它们存储在我的资产文件夹中,并使用getAssets()访问它们。Android应用程序崩溃,由于大量的图像

但是,我的应用程序在启动时崩溃,如果我减少文件夹中的图像数量,则工作正常。是否有可能在其他地方存储其他图像或增加我的应用可以处理的图像大小?

我logcat的误差为“失败增加JNI本地参考表(具有512个条目)”

每个图像是大约4kb的大,总文件夹大小是2.1 MB

相关的代码是:

 AssetManager assets = getAssets(); 
    fileNameList = new ArrayList<String>(); 
    fileNameList.clear(); 

    String[] paths; 
    try { 
     paths = assets.list("final"); 

     for (String path : paths) 
      fileNameList.add(path.replace(".jpg", "")); 

    } catch (IOException e) { 
     Log.e(TAG, "Error loading image file names", e); 
    } // end catch 
+1

post logcat error –

+0

有多小 - 即文件大小 - 是否是png?也是由于OutOfMemory错误导致崩溃?以及它们如何显示(例如,listview,imageview,gridview)?您可能需要通过使用较低分辨率的图像来缩小文件大小以使其工作。 – Rarw

+0

@ goran-horia-mihail:更新了我的文章 – user1801060

我想你的答案是in this post。您无法将参考表扩展超过512个项目,因此您需要删除对类和/或对象的本地参考以释放空间。

+0

以上我减少了不。的图像到460.没有变化,而且,我不知道为什么我得到一个JNI错误,但我没有在我的代码中使用JNI – user1801060

+0

那么这是没有意义的。 – Rarw