【发布时间】:2013-08-01 17:47:53
【问题描述】:
我正在编写一个需要大约 520 个小 png 的应用程序。我已将这些存储在我的资产文件夹中,并使用 getAssets() 访问它们。
但是,如果我减少文件夹中的图像数量,我的应用程序在启动时会崩溃并且可以正常工作。是否可以在其他地方存储额外的图像或增加我的应用可以处理的图像大小?
我的 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
【问题讨论】:
-
png 有多小(即文件大小)?这也是因为 OutOfMemory 错误而崩溃吗?以及它们是如何显示的(例如 listview、imageview、gridview)?您可能需要通过使用较低分辨率的图像来减小文件大小才能完成这项工作。
-
@goran-horia-mihail:更新了我的帖子
-
@rarw: 更新了我的帖子
-
您能否也将代码发布到您要检索图像的位置。你可能做错了什么。
-
@btse:该代码适用于少量图像。我在上面贴了一个sn-p
标签: android android-ui