[Android] Picasso get() 에서 IllegalStateException 발생
프로그래밍/안드로이드2020. 2. 10. 15:27
아주 간헐적인 이슈지만.. Picasso get()에서 illegalStateException이 발생했습니다.
java.lang.IllegalStateException:
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)
RequestHandler.Result result = requestHandler.load(data, networkPolicy);
BitmapHunter.java의 206라인에서 문제가 발생했는데 그 코드는 위와 같습니다.
@Override public Result load(Request request, int networkPolicy) throws IOException {
throw new IllegalStateException("Unrecognized type of request: " + request);
}
그리고.. 동일한 파일의 66라인에서 Exception이 발생됩니다.
스택오버플로우에서 검색을 해보니.. 요청하는 이미지 주소가... 제대로 된 것이 아니면 이런 문제가 발생한다고 합니다.
(https://stackoverflow.com/questions/39456858/picasso-unrecognized-type-of-request-for-http-scheme)
해결방법은.. 각자의 경우에 따라 다를 수 있는데
저의 경우에는.. 요청하는 이미지 주소가 제대로 된 것이 아니면.. 그냥 무시하면 됩니다.
그래서 try~catch문으로 감싸줬습니다.
Bitmap bmp = null;
try {
if(thumbnailURL != null && thumbnailURL.length() > 0) { //java.lang.IllegalArgumentException: Path must not be empty.
bmp = Picasso.with(getApplicationContext()).load(thumbnailURL).get();
builder.setLargeIcon(bmp);
}
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e){ //[200210] fix: IllegalStateException: Unrecognized type of request
e.printStackTrace();
}
댓글 영역