java.lang.IllegalArgumentException: Problem decoding into existing bitmap
Opened this issue · 3 comments
GoogleCodeExporter commented
I see many 'Problem decoding into existing bitmap' decoding exceptions in
osmdroid logs.
When android cannot reuse bitmap, the decode method throws an
IllegalArgumentException. This often happens when the server returns a tiles in
different size, or not in PNG format. This is, for example, when Cloudmade
(small tiles) layer is selected.
Proposed patch:
https://github.com/illarionov/OsmDroid/commit/90fb9ab31648478087f50b859ec18c9d59
2c9f92
Log:
E/o*.o*.t*.m*.MapTileDow*(17298): Error downloading MapTile: /11/19/1529
E/o*.o*.t*.m*.MapTileDow*(17298): java.lang.IllegalArgumentException: Problem
decoding into existing bitmap
E/o*.o*.t*.m*.MapTileDow*(17298): at
android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:631)
E/o*.o*.t*.m*.MapTileDow*(17298): at
org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.getDrawable(BitmapTile
SourceBase.java:135)
E/o*.o*.t*.m*.MapTileDow*(17298): at
org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileD
ownloader.java:213)
E/o*.o*.t*.m*.MapTileDow*(17298): at
org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTi
leModuleProviderBase.java:289)
E/o*.o*.t*.m*.MapTileDow*(17298): at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
E/o*.o*.t*.m*.MapTileDow*(17298): at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
E/o*.o*.t*.m*.MapTileDow*(17298): at java.lang.Thread.run(Thread.java:856)
Original issue reported on code.google.com by ls.illar...@gmail.com
on 21 Dec 2013 at 3:14
GoogleCodeExporter commented
The same problem persists in osmdroid 4.1.
To reproduce, run the OpenStreetMapViewer and select the "Cloudmade (small
tiles)" layer.
The proposed patch contains the following fixes:
1. Catch 'cannot use this bitmap' exception and fall-back to non-reusable
bitmaps
2. Throw LowMemoryException on getDrawable(final String aFilePath)
3. Check return value of getDrawable() for null (when
BitmapFactory.decodeStream() fails)
Throwing and IllegalArgumentException when the bitmap is not equal sized or not
in JPG/PNG format - is a documented behavior. (
http://developer.android.com/reference/android/graphics/BitmapFactory.Options.ht
ml#inBitmap )
Original comment by ls.illar...@gmail.com
on 27 Jan 2014 at 3:54
GoogleCodeExporter commented
[deleted comment]
GoogleCodeExporter commented
The patch referenced in the description doesn't exist any more. I suggest
making a new issue in github if you want this to get some attention, preferably
with a pull request.
Original comment by neilboyd
on 27 Aug 2014 at 8:11