我得到了著名的内存不足错误。但是我在这个问题上尝试了许多建议的解决方案,但没有任何运气。我知道为了防止位图超出内存,您可以创建一个可绘制的静态变量(Android 文档)。但这在我的应用程序中不起作用,因为您可以看到我有很多标记..
有人对解决方案有建议吗?
for(Poi p : poiarray){
WeakReference<Bitmap> bitmap = new WeakReference<Bitmap>(p.get_poiIcon());
if(bitmap!=null){
Drawable marker = new BitmapDrawable(Bitmap.createScaledBitmap(bitmap.get(), 60, 60, true));
annotationOverLays.add(new CustomAnnotation(marker,p,this,mapView));
//mapView.getOverlays().add(new CustomAnnotation(marker,p,this,mapView));
}
}
mapView.getOverlays().addAll(annotationOverLays);
错误:
05-23 13:08:31.436: E/dalvikvm-heap(22310): 20736-byte external allocation too large for this process.
05-23 13:08:31.436: E/dalvikvm(22310): Out of memory: Heap Size=23111KB, Allocated=22474KB, Bitmap Size=1505KB
05-23 13:08:31.436: E/GraphicsJNI(22310): VM won't let us allocate 20736 bytes
编辑:
我想我可能已经将问题本地化了。如果我单击几个注释,我可以触发内存不足异常。我使用Here的 mapViewBalloons ,当我打开关闭 2 次时,我的应用程序崩溃但异常。有人有类似的问题吗?