使用 Universal Image Loader 显示 google 静态地图时出现 FileNotFoundException
FileNotFoundException when display google static map using Universal Image Loader
我的代码:
mapThumbUrl = "http://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=13&size=1000x400&format=jpg&markers=40.714728,-73.998672";
ImageLoader.getInstance().displayImage(mapThumbUrl, holder.image);
异常:
http://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=13&size=1000x400&format=jpg&markers=40.714728,-73.998672
java.io.FileNotFoundException: http://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=13&size=1000x400&format=jpg&markers=40.714728,-73.998672
at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:186)
at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFromNetwork(BaseImageDownloader.java:122)
at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(BaseImageDownloader.java:86)
at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.getImageStream(BaseImageDecoder.java:93)
at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.decode(BaseImageDecoder.java:73)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.decodeImage(LoadAndDisplayImageTask.java:264)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:237)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:135)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
看来 google 静态地图可以用 AsyncTask 在 ImageView 中显示,如下 post: Use Google's Static Maps API to illustrate location in your Android apps
但我想使用 UIL 而不是 AsyncTask,因为图像处理在我的应用程序中交给了 UIL。
有什么线索吗?
即使我的代码没有更改,它现在也能正常工作。我将静态地图的大小调整为 100x40 并删除了格式参数,它起作用了,url 是这样的:http://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=13&size=100x40&markers=40.714728,-73.998672
但是,当我添加格式参数并将大小恢复为 1000x400 时,它仍然可以正常工作。我想这是由我的 VPN 引起的?当 FileNotFoundException 发生时,我的 Google 地图与我的 VPN 配合良好。
我想这个问题可能对中国的开发者有帮助。
我的代码:
mapThumbUrl = "http://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=13&size=1000x400&format=jpg&markers=40.714728,-73.998672";
ImageLoader.getInstance().displayImage(mapThumbUrl, holder.image);
异常:
http://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=13&size=1000x400&format=jpg&markers=40.714728,-73.998672
java.io.FileNotFoundException: http://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=13&size=1000x400&format=jpg&markers=40.714728,-73.998672
at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:186)
at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFromNetwork(BaseImageDownloader.java:122)
at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(BaseImageDownloader.java:86)
at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.getImageStream(BaseImageDecoder.java:93)
at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.decode(BaseImageDecoder.java:73)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.decodeImage(LoadAndDisplayImageTask.java:264)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:237)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:135)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
看来 google 静态地图可以用 AsyncTask 在 ImageView 中显示,如下 post: Use Google's Static Maps API to illustrate location in your Android apps
但我想使用 UIL 而不是 AsyncTask,因为图像处理在我的应用程序中交给了 UIL。
有什么线索吗?
即使我的代码没有更改,它现在也能正常工作。我将静态地图的大小调整为 100x40 并删除了格式参数,它起作用了,url 是这样的:http://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=13&size=100x40&markers=40.714728,-73.998672
但是,当我添加格式参数并将大小恢复为 1000x400 时,它仍然可以正常工作。我想这是由我的 VPN 引起的?当 FileNotFoundException 发生时,我的 Google 地图与我的 VPN 配合良好。
我想这个问题可能对中国的开发者有帮助。