片段上的 osmdroid 导致内存不足
osmdroid on fragment cause out of memory
我正在尝试使用 Android Studio 在 Android 上开发地图应用程序。
经过一些操作后,我遇到了内存不足的异常...
我有一个 activity 抽屉可以在两个片段之间切换 :
void StartFragment(int position)
{
FragmentTransaction transaction = getFragmentManager().beginTransaction();
Fragment newFragment = null;
switch(position){
case(1):
newFragment = new MissionFragment();
transaction.replace(R.id.frame_container, newFragment);
break;
case(0):
default:
newFragment = new MapFragment();
transaction.replace(R.id.frame_container, newFragment);
break;
}
if (newFragment != null) {
transaction.addToBackStack(null);
transaction.commit();
mCurrentFragment = position;
}
}
地图片段是这样构造的:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
LinearLayout rl = (LinearLayout) inflater.inflate(R.layout.fragment_map, container, false);
map = (MapView) rl.findViewById(R.id.map);
return rl;
}
还有这个:
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mContext = getActivity();
mMissionDataModel = MissionDataModel.getInstance(mContext);
map.setTileSource(TileSourceFactory.MAPNIK);
map.setBuiltInZoomControls(true);
map.setMultiTouchControls(true);
GeoPoint startPoint = new GeoPoint(46.5328, 6.6306);
IMapController mapController = map.getController();
mapController.setZoom(11);
mapController.setCenter(startPoint);
if(myLocationOverlay == null)
myLocationOverlay = new DirectedLocationOverlay(mContext);
else
map.getOverlays().remove(myLocationOverlay);
map.getOverlays().add(myLocationOverlay);
//Add Scale Bar
ScaleBarOverlay myScaleBarOverlay = new ScaleBarOverlay(mContext);
map.getOverlays().add(myScaleBarOverlay);
}
片段图布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapfragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<org.osmdroid.views.MapView android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</RelativeLayout>
</LinearLayout>
当我第一次从片段 4 切换时,我有这个 logcat
09-04 10:53:09.438 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.v*.MapView﹕ Using tile source: org.osmdroid.tileprovider.tilesource.XYTileSource@429569b8
09-04 10:53:09.443 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileFil*﹕ sdcard state: mounted
09-04 10:53:09.448 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileFil*﹕ sdcard state: mounted
09-04 10:53:09.453 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileFil*﹕ sdcard state: mounted
09-04 10:53:09.563 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.LRUMapTileCac*﹕ Tile cache increased from 9 to 35
09-04 10:53:09.603 18516-18516/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 554K, 5% free 38490K/40135K, paused 40ms, total 40ms
09-04 10:53:09.738 18516-19354/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 108K, 4% free 39643K/41095K, paused 36ms, total 36ms
09-04 10:53:09.853 18516-19363/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 213K, 4% free 41024K/42439K, paused 35ms, total 35ms
09-04 10:53:09.913 18516-19350/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 134K, 4% free 42209K/43719K, paused 34ms, total 35ms
09-04 10:53:10.028 18516-19350/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 217K, 4% free 43493K/44999K, paused 35ms, total 36ms
09-04 10:53:10.118 18516-19361/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 143K, 4% free 44838K/46279K, paused 38ms, total 38ms
09-04 10:53:10.213 18516-19361/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 211K, 4% free 46057K/47559K, paused 36ms, total 36ms
09-04 10:53:10.293 18516-19356/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 143K, 4% free 47305K/48839K, paused 38ms, total 38ms
09-04 10:53:10.328 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/Choreographer﹕ Skipped 46 frames! The application may be doing too much work on its main thread.
09-04 10:53:14.248 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.v*.MapView﹕ Using tile source: org.osmdroid.tileprovider.tilesource.XYTileSource@429569b8
09-04 10:53:14.253 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileFil*﹕ sdcard state: mounted
09-04 10:53:14.258 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileFil*﹕ sdcard state: mounted
09-04 10:53:14.263 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileFil*﹕ sdcard state: mounted
09-04 10:53:14.368 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.LRUMapTileCac*﹕ Tile cache increased from 9 to 35
09-04 10:53:14.478 18516-19529/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 562K, 3% free 48679K/50119K, paused 41ms, total 50ms
09-04 10:53:14.568 18516-19542/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 190K, 3% free 49980K/51399K, paused 35ms, total 35ms
09-04 10:53:14.653 18516-19538/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 174K, 3% free 51230K/52679K, paused 33ms, total 34ms
09-04 10:53:14.768 18516-19536/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 184K, 3% free 52612K/54023K, paused 37ms, total 39ms
09-04 10:53:14.838 18516-19538/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 167K, 3% free 53765K/55303K, paused 37ms, total 37ms
09-04 10:53:14.938 18516-19539/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 183K, 3% free 55109K/56583K, paused 33ms, total 36ms
09-04 10:53:15.018 18516-19529/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 173K, 3% free 56326K/57863K, paused 35ms, total 36ms
09-04 10:53:15.053 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/Choreographer﹕ Skipped 41 frames! The application may be doing too much work on its main thread.
那我记不住了
09-04 10:53:20.948 18516-19733/ch.coyoteprod.coyotecad.mobilecad E/o*.o*.t*.t*.BitmapTile*﹕ OutOfMemoryError loading bitmap
09-04 10:53:21.003 18516-19718/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 65.028MB to 64.000MB
09-04 10:53:21.003 18516-19718/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_EXPLICIT freed 39K, 3% free 63728K/65287K, paused 13ms+17ms, total 70ms
09-04 10:53:21.003 18516-19708/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 415ms
09-04 10:53:21.068 18516-19708/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 65.006MB to 64.000MB
09-04 10:53:21.068 18516-19708/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_EXPLICIT freed 66K, 3% free 63706K/65287K, paused 3ms+17ms, total 64ms
09-04 10:53:21.068 18516-19722/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 827ms
09-04 10:53:21.133 18516-18516/ch.coyoteprod.coyotecad.mobilecad E/SpannableStringBuilder﹕ SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
09-04 10:53:21.133 18516-18516/ch.coyoteprod.coyotecad.mobilecad E/SpannableStringBuilder﹕ SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
09-04 10:53:21.133 18516-19722/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 65.003MB to 64.000MB
09-04 10:53:21.133 18516-19722/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_EXPLICIT freed 31K, 3% free 63703K/65287K, paused 13ms+8ms, total 65ms
09-04 10:53:21.133 18516-19733/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 185ms
09-04 10:53:21.183 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.999MB to 64.000MB
09-04 10:53:21.183 18516-19733/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_EXPLICIT freed 5K, 3% free 63698K/65287K, paused 13ms+4ms, total 50ms
09-04 10:53:21.183 18516-19731/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 404ms
09-04 10:53:21.208 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.999MB to 64.000MB
09-04 10:53:21.208 18516-19731/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed <1K, 3% free 63698K/65287K, paused 24ms, total 24ms
09-04 10:53:21.208 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Forcing collection of SoftReferences for 262160-byte allocation
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.999MB to 64.000MB
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_BEFORE_OOM freed 0K, 3% free 63698K/65287K, paused 33ms, total 33ms
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad E/dalvikvm-heap﹕ Out of memory on a 262160-byte allocation.
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ "downloader" prio=5 tid=32 RUNNABLE
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ | group="main" sCount=0 dsCount=0 obj=0x437a5ca8 self=0x610d8370
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ | sysTid=19731 nice=0 sched=0/0 cgrp=apps handle=1572382416
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ | schedstat=( 160484495 80061083 1859 ) utm=10 stm=5 core=1
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:652)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:144)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at java.lang.Thread.run(Thread.java:856)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ [ 09-04 10:53:21.243 18516:19712 D/dalvikvm ]
WAIT_FOR_CONCURRENT_GC blocked 646ms
09-04 10:53:21.248 18516-19731/ch.coyoteprod.coyotecad.mobilecad D/skia﹕ --- decoder->decode returned false
09-04 10:53:21.248 18516-19731/ch.coyoteprod.coyotecad.mobilecad E/o*.o*.t*.t*.BitmapTile*﹕ OutOfMemoryError loading bitmap
09-04 10:53:21.248 18516-19733/ch.coyoteprod.coyotecad.mobilecad W/o*.o*.t*.m*.MapTileDow*﹕ LowMemoryException downloading MapTile: /11/1061/724 : org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
09-04 10:53:21.258 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileMod*﹕ Tile loader can't continue: /11/1061/724
org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$CantContinueException: org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:224)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:151)
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.OutOfMemoryError
at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:652)
at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:144)
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
09-04 10:53:21.283 18516-19712/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.995MB to 64.000MB
09-04 10:53:21.283 18516-19712/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_EXPLICIT freed 36K, 3% free 63694K/65287K, paused 3ms+5ms, total 38ms
09-04 10:53:21.283 18516-19731/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 32ms
09-04 10:53:21.338 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.939MB to 64.000MB
09-04 10:53:21.338 18516-19731/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_EXPLICIT freed 92K, 3% free 63637K/65287K, paused 12ms+6ms, total 59ms
09-04 10:53:21.343 18516-19731/ch.coyoteprod.coyotecad.mobilecad W/o*.o*.t*.m*.MapTileDow*﹕ LowMemoryException downloading MapTile: /11/1062/724 : org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
09-04 10:53:21.353 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileMod*﹕ Tile loader can't continue: /11/1062/724
org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$CantContinueException: org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:224)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:151)
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.OutOfMemoryError
at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:652)
at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:144)
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
09-04 10:53:21.548 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.910MB to 64.000MB
09-04 10:53:21.548 18516-19733/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 192K, 3% free 63607K/65287K, paused 36ms, total 36ms
09-04 10:53:21.548 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Forcing collection of SoftReferences for 262160-byte allocation
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.910MB to 64.000MB
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_BEFORE_OOM freed 0K, 3% free 63607K/65287K, paused 32ms, total 32ms
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad E/dalvikvm-heap﹕ Out of memory on a 262160-byte allocation.
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ "downloader" prio=5 tid=34 RUNNABLE
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ | group="main" sCount=0 dsCount=0 obj=0x434c1498 self=0x610d4798
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ | sysTid=19733 nice=0 sched=0/0 cgrp=apps handle=1572382512
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ | schedstat=( 371508693 77115930 1961 ) utm=30 stm=6 core=1
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:652)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:144)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at java.lang.Thread.run(Thread.java:856)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ [ 09-04 10:53:21.583 18516:19733 D/skia ]
--- decoder->decode returned false
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad E/o*.o*.t*.t*.BitmapTile*﹕ OutOfMemoryError loading bitmap
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 0ms
09-04 10:53:21.618 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.894MB to 64.000MB
09-04 10:53:21.618 18516-19733/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_EXPLICIT freed 16K, 3% free 63590K/65287K, paused 2ms+4ms, total 36ms
09-04 10:53:21.618 18516-19733/ch.coyoteprod.coyotecad.mobilecad W/o*.o*.t*.m*.MapTileDow*﹕ LowMemoryException downloading MapTile: /11/1058/725 : org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
09-04 10:53:21.628 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileMod*﹕ Tile loader can't continue: /11/1058/725
org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$CantContinueException: org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:224)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:151)
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.OutOfMemoryError
at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:652)
at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:144)
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
我不明白为什么....
非常感谢您的帮助...
从 https://code.google.com/p/osmdroid/issues/detail?id=265
中找到部分 "solution"
添加:
map.getTileProvider().clearTileCache();
解决问题...
我正在尝试使用 Android Studio 在 Android 上开发地图应用程序。 经过一些操作后,我遇到了内存不足的异常...
我有一个 activity 抽屉可以在两个片段之间切换 :
void StartFragment(int position)
{
FragmentTransaction transaction = getFragmentManager().beginTransaction();
Fragment newFragment = null;
switch(position){
case(1):
newFragment = new MissionFragment();
transaction.replace(R.id.frame_container, newFragment);
break;
case(0):
default:
newFragment = new MapFragment();
transaction.replace(R.id.frame_container, newFragment);
break;
}
if (newFragment != null) {
transaction.addToBackStack(null);
transaction.commit();
mCurrentFragment = position;
}
}
地图片段是这样构造的:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
LinearLayout rl = (LinearLayout) inflater.inflate(R.layout.fragment_map, container, false);
map = (MapView) rl.findViewById(R.id.map);
return rl;
}
还有这个:
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mContext = getActivity();
mMissionDataModel = MissionDataModel.getInstance(mContext);
map.setTileSource(TileSourceFactory.MAPNIK);
map.setBuiltInZoomControls(true);
map.setMultiTouchControls(true);
GeoPoint startPoint = new GeoPoint(46.5328, 6.6306);
IMapController mapController = map.getController();
mapController.setZoom(11);
mapController.setCenter(startPoint);
if(myLocationOverlay == null)
myLocationOverlay = new DirectedLocationOverlay(mContext);
else
map.getOverlays().remove(myLocationOverlay);
map.getOverlays().add(myLocationOverlay);
//Add Scale Bar
ScaleBarOverlay myScaleBarOverlay = new ScaleBarOverlay(mContext);
map.getOverlays().add(myScaleBarOverlay);
}
片段图布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapfragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<org.osmdroid.views.MapView android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</RelativeLayout>
</LinearLayout>
当我第一次从片段 4 切换时,我有这个 logcat
09-04 10:53:09.438 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.v*.MapView﹕ Using tile source: org.osmdroid.tileprovider.tilesource.XYTileSource@429569b8
09-04 10:53:09.443 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileFil*﹕ sdcard state: mounted
09-04 10:53:09.448 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileFil*﹕ sdcard state: mounted
09-04 10:53:09.453 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileFil*﹕ sdcard state: mounted
09-04 10:53:09.563 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.LRUMapTileCac*﹕ Tile cache increased from 9 to 35
09-04 10:53:09.603 18516-18516/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 554K, 5% free 38490K/40135K, paused 40ms, total 40ms
09-04 10:53:09.738 18516-19354/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 108K, 4% free 39643K/41095K, paused 36ms, total 36ms
09-04 10:53:09.853 18516-19363/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 213K, 4% free 41024K/42439K, paused 35ms, total 35ms
09-04 10:53:09.913 18516-19350/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 134K, 4% free 42209K/43719K, paused 34ms, total 35ms
09-04 10:53:10.028 18516-19350/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 217K, 4% free 43493K/44999K, paused 35ms, total 36ms
09-04 10:53:10.118 18516-19361/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 143K, 4% free 44838K/46279K, paused 38ms, total 38ms
09-04 10:53:10.213 18516-19361/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 211K, 4% free 46057K/47559K, paused 36ms, total 36ms
09-04 10:53:10.293 18516-19356/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 143K, 4% free 47305K/48839K, paused 38ms, total 38ms
09-04 10:53:10.328 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/Choreographer﹕ Skipped 46 frames! The application may be doing too much work on its main thread.
09-04 10:53:14.248 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.v*.MapView﹕ Using tile source: org.osmdroid.tileprovider.tilesource.XYTileSource@429569b8
09-04 10:53:14.253 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileFil*﹕ sdcard state: mounted
09-04 10:53:14.258 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileFil*﹕ sdcard state: mounted
09-04 10:53:14.263 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileFil*﹕ sdcard state: mounted
09-04 10:53:14.368 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.LRUMapTileCac*﹕ Tile cache increased from 9 to 35
09-04 10:53:14.478 18516-19529/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 562K, 3% free 48679K/50119K, paused 41ms, total 50ms
09-04 10:53:14.568 18516-19542/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 190K, 3% free 49980K/51399K, paused 35ms, total 35ms
09-04 10:53:14.653 18516-19538/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 174K, 3% free 51230K/52679K, paused 33ms, total 34ms
09-04 10:53:14.768 18516-19536/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 184K, 3% free 52612K/54023K, paused 37ms, total 39ms
09-04 10:53:14.838 18516-19538/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 167K, 3% free 53765K/55303K, paused 37ms, total 37ms
09-04 10:53:14.938 18516-19539/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 183K, 3% free 55109K/56583K, paused 33ms, total 36ms
09-04 10:53:15.018 18516-19529/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 173K, 3% free 56326K/57863K, paused 35ms, total 36ms
09-04 10:53:15.053 18516-18516/ch.coyoteprod.coyotecad.mobilecad I/Choreographer﹕ Skipped 41 frames! The application may be doing too much work on its main thread.
那我记不住了
09-04 10:53:20.948 18516-19733/ch.coyoteprod.coyotecad.mobilecad E/o*.o*.t*.t*.BitmapTile*﹕ OutOfMemoryError loading bitmap
09-04 10:53:21.003 18516-19718/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 65.028MB to 64.000MB
09-04 10:53:21.003 18516-19718/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_EXPLICIT freed 39K, 3% free 63728K/65287K, paused 13ms+17ms, total 70ms
09-04 10:53:21.003 18516-19708/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 415ms
09-04 10:53:21.068 18516-19708/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 65.006MB to 64.000MB
09-04 10:53:21.068 18516-19708/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_EXPLICIT freed 66K, 3% free 63706K/65287K, paused 3ms+17ms, total 64ms
09-04 10:53:21.068 18516-19722/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 827ms
09-04 10:53:21.133 18516-18516/ch.coyoteprod.coyotecad.mobilecad E/SpannableStringBuilder﹕ SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
09-04 10:53:21.133 18516-18516/ch.coyoteprod.coyotecad.mobilecad E/SpannableStringBuilder﹕ SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
09-04 10:53:21.133 18516-19722/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 65.003MB to 64.000MB
09-04 10:53:21.133 18516-19722/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_EXPLICIT freed 31K, 3% free 63703K/65287K, paused 13ms+8ms, total 65ms
09-04 10:53:21.133 18516-19733/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 185ms
09-04 10:53:21.183 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.999MB to 64.000MB
09-04 10:53:21.183 18516-19733/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_EXPLICIT freed 5K, 3% free 63698K/65287K, paused 13ms+4ms, total 50ms
09-04 10:53:21.183 18516-19731/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 404ms
09-04 10:53:21.208 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.999MB to 64.000MB
09-04 10:53:21.208 18516-19731/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed <1K, 3% free 63698K/65287K, paused 24ms, total 24ms
09-04 10:53:21.208 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Forcing collection of SoftReferences for 262160-byte allocation
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.999MB to 64.000MB
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_BEFORE_OOM freed 0K, 3% free 63698K/65287K, paused 33ms, total 33ms
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad E/dalvikvm-heap﹕ Out of memory on a 262160-byte allocation.
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ "downloader" prio=5 tid=32 RUNNABLE
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ | group="main" sCount=0 dsCount=0 obj=0x437a5ca8 self=0x610d8370
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ | sysTid=19731 nice=0 sched=0/0 cgrp=apps handle=1572382416
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ | schedstat=( 160484495 80061083 1859 ) utm=10 stm=5 core=1
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:652)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:144)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at java.lang.Thread.run(Thread.java:856)
09-04 10:53:21.243 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ [ 09-04 10:53:21.243 18516:19712 D/dalvikvm ]
WAIT_FOR_CONCURRENT_GC blocked 646ms
09-04 10:53:21.248 18516-19731/ch.coyoteprod.coyotecad.mobilecad D/skia﹕ --- decoder->decode returned false
09-04 10:53:21.248 18516-19731/ch.coyoteprod.coyotecad.mobilecad E/o*.o*.t*.t*.BitmapTile*﹕ OutOfMemoryError loading bitmap
09-04 10:53:21.248 18516-19733/ch.coyoteprod.coyotecad.mobilecad W/o*.o*.t*.m*.MapTileDow*﹕ LowMemoryException downloading MapTile: /11/1061/724 : org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
09-04 10:53:21.258 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileMod*﹕ Tile loader can't continue: /11/1061/724
org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$CantContinueException: org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:224)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:151)
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.OutOfMemoryError
at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:652)
at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:144)
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
09-04 10:53:21.283 18516-19712/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.995MB to 64.000MB
09-04 10:53:21.283 18516-19712/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_EXPLICIT freed 36K, 3% free 63694K/65287K, paused 3ms+5ms, total 38ms
09-04 10:53:21.283 18516-19731/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 32ms
09-04 10:53:21.338 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.939MB to 64.000MB
09-04 10:53:21.338 18516-19731/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_EXPLICIT freed 92K, 3% free 63637K/65287K, paused 12ms+6ms, total 59ms
09-04 10:53:21.343 18516-19731/ch.coyoteprod.coyotecad.mobilecad W/o*.o*.t*.m*.MapTileDow*﹕ LowMemoryException downloading MapTile: /11/1062/724 : org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
09-04 10:53:21.353 18516-19731/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileMod*﹕ Tile loader can't continue: /11/1062/724
org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$CantContinueException: org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:224)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:151)
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.OutOfMemoryError
at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:652)
at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:144)
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
09-04 10:53:21.548 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.910MB to 64.000MB
09-04 10:53:21.548 18516-19733/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_FOR_ALLOC freed 192K, 3% free 63607K/65287K, paused 36ms, total 36ms
09-04 10:53:21.548 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Forcing collection of SoftReferences for 262160-byte allocation
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.910MB to 64.000MB
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_BEFORE_OOM freed 0K, 3% free 63607K/65287K, paused 32ms, total 32ms
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad E/dalvikvm-heap﹕ Out of memory on a 262160-byte allocation.
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ "downloader" prio=5 tid=34 RUNNABLE
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ | group="main" sCount=0 dsCount=0 obj=0x434c1498 self=0x610d4798
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ | sysTid=19733 nice=0 sched=0/0 cgrp=apps handle=1572382512
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ | schedstat=( 371508693 77115930 1961 ) utm=30 stm=6 core=1
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:652)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:144)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ at java.lang.Thread.run(Thread.java:856)
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm﹕ [ 09-04 10:53:21.583 18516:19733 D/skia ]
--- decoder->decode returned false
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad E/o*.o*.t*.t*.BitmapTile*﹕ OutOfMemoryError loading bitmap
09-04 10:53:21.583 18516-19733/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 0ms
09-04 10:53:21.618 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/dalvikvm-heap﹕ Clamp target GC heap from 64.894MB to 64.000MB
09-04 10:53:21.618 18516-19733/ch.coyoteprod.coyotecad.mobilecad D/dalvikvm﹕ GC_EXPLICIT freed 16K, 3% free 63590K/65287K, paused 2ms+4ms, total 36ms
09-04 10:53:21.618 18516-19733/ch.coyoteprod.coyotecad.mobilecad W/o*.o*.t*.m*.MapTileDow*﹕ LowMemoryException downloading MapTile: /11/1058/725 : org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
09-04 10:53:21.628 18516-19733/ch.coyoteprod.coyotecad.mobilecad I/o*.o*.t*.m*.MapTileMod*﹕ Tile loader can't continue: /11/1058/725
org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$CantContinueException: org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:224)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase$LowMemoryException: java.lang.OutOfMemoryError
at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:151)
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.OutOfMemoryError
at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:652)
at org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTileSourceBase.java:144)
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:214)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
我不明白为什么.... 非常感谢您的帮助...
从 https://code.google.com/p/osmdroid/issues/detail?id=265
中找到部分 "solution"添加:
map.getTileProvider().clearTileCache();
解决问题...