我正在加载图像时同步加载图像以显示通知。
bitmap = picasso.load(imageUrl).get();
工作正常,但今天我有一个例外:
Fatal Exception: java.lang.IllegalStateException: Unrecognized type of request: Request{
http://www.fulbori.com/mp/resources/image/19/17/e.jpg}
at com.squareup.picasso.BitmapHunter$2.load(BitmapHunter.java:66)
at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:206)
at com.squareup.picasso.RequestCreator.get(RequestCreator.java:396)
at com.jumbotail.app.utils.JtImageLoader.loadImageSync(JtImageLoader.java:397)
at com.jumbotail.app.notifs.JumboGcmIntentService.readInboundIntent(JumboGcmIntentService.java:213)
at com.jumbotail.app.notifs.JumboGcmIntentService.buildNotification(JumboGcmIntentService.java:273)
at com.jumbotail.app.notifs.JumboGcmIntentService.onHandleIntent(JumboGcmIntentService.java:49)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:174)
at android.os.HandlerThread.run(HandlerThread.java:60)
据我所知,当没有请求处理程序可以处理请求时,Picasso会抛出此错误。
现在,根据请求的Uri
方案(http
)} canHandleRequest(Request data)
NetworkRequestHandler
方法应该返回true
。
但是所有请求处理程序都返回false
,包括NetworkRequestHandler
。因此,毕加索返回ERRORING_HANDLER
导致异常:IllegalStateException("Unrecognized type of request: " + request)
。
这个例外还有其他解释吗?
编辑:我在毕加索也提出了an issue。答案 0 :(得分:4)
特别是我遇到了这个错误,因为我收到的URL,如错误所提到的,不是处理程序可以使用的有效URL。特别是,URL字符串在“http”之前有空格,如:
" http://example.com/image.jpg"
。
所以我只需要在url字符串上调用trim()
,然后用Picasso加载它,并且效果很好!
答案 1 :(得分:0)
如果您通过毕加索的路径缺少主机名和方案,也可以获取此信息:-)