일모도원(日暮途遠) 개발자

[Android오류수정] Glide (Failed to connect or obtain data, status code: -1) 본문

안드로이드 개발/오류수정

[Android오류수정] Glide (Failed to connect or obtain data, status code: -1)

달님개발자 2022. 9. 27. 13:35

 

Glide문서에 있는 기본 예제를 실행해 봤는데 에러가 나고 이미지가 보이지 않는다.

  ImageView imageView = (ImageView) findViewById(R.id.my_image_view);
  Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView);

 

에러 내용

W/Glide: Load failed for http://goo.gl/gEgYUd with size [131x131]
    class com.bumptech.glide.load.engine.GlideException: Failed to load resource
    There was 1 root cause:
    com.bumptech.glide.load.HttpException(Failed to connect or obtain data, status code: -1)
     call GlideException#logRootCauses(String) for more detail
      Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Fetching data failed, class java.io.InputStream, REMOTE

 


원인은 인터넷에 있는 이미지인데 현재 앱에서 인터넷 권한이 없고, 또 http://goo.gl/gEgYUd 이 이미지 경로가 https가 아닌 http이다. 안드로이드는 http는 기본적으로 안되게 막아두었다고 한다. usesCleartextTraffic을 true로 주면 http에 있는 경로도 접근이 가능하다.


해결책은 manifest의  applicatiion 태그에 usesCleartextTraffic을 true로 추가하고, 또 인터넷 권한을 주자.

 

android:usesCleartextTraffic="true" 을 
<uses-permission android:name="android.permission.INTERNET" />