ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [안드로이드] FATAL EXCEPTION: OkHttp Dispatcher
    안드로이드(java)/에러 관련 2018. 11. 13. 17:59

    레트로핏2 연습중 에러가 났습니다.


    FATAL EXCEPTION: OkHttp Dispatcher


    ?? 이게 왜 나오지?


    이상하네 제대로 한것 같은데...


    천천히 로그캣 내용을 살펴 봅니다.


    잠시 후 어이없는 실수를 했다는것을 알아차리고 실소가 나옵니다.


    레트로핏을 사용하는건 인터넷을 사용한다는 것인데


    그러기 위해서는 인터넷 권한이 manifest에 들어가 있었어야만 하겠죠.


    근데 깜빡하고 그걸 빼먹었네요 ㅜ



    2018-11-13 16:37:53.720 18051-18093/com.example.cis.retrofitprac E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher

        Process: com.example.cis.retrofitprac, PID: 18051

        java.lang.SecurityException: Permission denied (missing INTERNET permission?)

            at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:135)

            at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:90)

            at java.net.InetAddress.getAllByName(InetAddress.java:787)

            at okhttp3.Dns$1.lookup(Dns.java:39)

            at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:171)

            at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.java:137)

            at okhttp3.internal.connection.RouteSelector.next(RouteSelector.java:82)

            at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:171)

            at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:121)

            at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:100)

            at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)

            at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)

            at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)

            at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)

            at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:185)

            at okhttp3.RealCall$AsyncCall.execute(RealCall.java:135)

            at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)

            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)

            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)

            at java.lang.Thread.run(Thread.java:764)

         Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)

            at libcore.io.Linux.android_getaddrinfo(Native Method)

            at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:58)

            at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:122)

            at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:90) 

            at java.net.InetAddress.getAllByName(InetAddress.java:787) 

            at okhttp3.Dns$1.lookup(Dns.java:39) 

            at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:171) 

            at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.java:137) 

            at okhttp3.internal.connection.RouteSelector.next(RouteSelector.java:82) 

            at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:171) 

            at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:121) 

            at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:100) 

            at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42) 

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) 

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) 

            at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) 

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) 

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) 

            at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) 

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) 

            at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120) 

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) 

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) 

            at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:185) 

            at okhttp3.RealCall$AsyncCall.execute(RealCall.java:135) 

            at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) 

            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 

            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 

            at java.lang.Thread.run(Thread.java:764) 

         Caused by: android.system.ErrnoException: android_getaddrinfo failed: EACCES (Permission denied)

            at libcore.io.Linux.android_getaddrinfo(Native Method) 

            at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:58) 

            at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:122) 

            at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:90) 

            at java.net.InetAddress.getAllByName(InetAddress.java:787) 

            at okhttp3.Dns$1.lookup(Dns.java:39) 

            at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:171) 

            at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.java:137) 

            at okhttp3.internal.connection.RouteSelector.next(RouteSelector.java:82) 

            at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:171) 

            at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:121) 

            at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:100) 

            at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42) 

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) 

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) 

            at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) 

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) 

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) 

            at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) 

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) 

            at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120) 

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) 

            at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) 

            at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:185) 

            at okhttp3.RealCall$AsyncCall.execute(RealCall.java:135) 

            at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) 

            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 

            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 

            at java.lang.Thread.run(Thread.java:764) 




    빨간색 부분이 핵심 이네요.


    Permission denied (missing INTERNET permission?)



    - AndroidManifest.xml 에 내용 추가 -

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



    인터넷 권한을 줍니다.


    다시 실행해보니 잘 되네요.


    찾아오신 분들도 이런 어이없는 실수를 하지 않도록 항상 기억하셔야 할 것 같아요 ㅜ



    댓글

Designed by Tistory.