使用 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 配合良好。

我想这个问题可能对中国的开发者有帮助。