我需要这个方面的帮助,问题是我正在工作的项目需要一个自定义的地图瓷砖地图提供程序,该项目通常不超过30秒钟即可构建,并具有在线gradle等等。
当我将带有自定义图块的图像添加到Assets文件夹时,问题开始了,构建时间最多可能需要3个小时。或仅仅10分钟,我就会收到此错误。
java.lang.OutOfMemoryError:超出了GC开销限制
我发现,将此设置添加到gradle设置中后,该错误应该消失了,但是它不起作用。
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
我一直在考虑这个选项,并将其增加到8g,但它什么也没做。
当我尝试构建该应用程序时,cpu会从8Gb的使用率中降至100%和7.9Gb,直到构建崩溃并得到上一个错误。
该应用程序需要离线工作,因此我无法下载磁贴,并且该应用程序的大小并不重要,因为它不会通过任何应用程序商店发布,而是由我们直接安装到某些设备上。
tiles文件夹的大小约为250Mb,大约有30000个文件,7000个文件,但我仍然得到相同的结果。
是因为文件大小,文件数量?还是因为两者?
任何帮助将不胜感激,我是android开发的“新手”,我在2011年学习了一些基础知识,但是直到大约4个月前还没有做任何事情或学到什么,所以我有点迷失了。
对于某些拼写错误或措辞怪异的单词,我也不会说英语。
编辑:
Extra details as Morrishon Chang asked
OS: window 10
Memmory: 8Gb
JDK: 1.8.0_144
average tile image size: 13kb
image tile format: png
image tiles ammount: about 32000 images
答案 0 :(得分:1)
首先,我建议使用Android Drawable Importer插件。 您可以从Android Studio->首选项->插件中访问它,我通常使用该插件导入资产,并且一切正常。
第二,我建议您使用图像处理库,例如Glide,在我看来它确实非常强大。
第三,尝试优化瓷砖的加载,也许使用RecyclerView?
祝你好运!