본문 바로가기

Android/Trouble Shoot4

java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $ 최근 프로젝트를 진행하면서 네트워크 통신을 위해 Retrofit2 라이브러리와 비동기 처리를 지원하는 Coroutine을 함께 사용하는 경우가 많아지고 있다. 통신 후 받아오는 response의 status가 오직 200인 경우에는 크게 상관없지만 현재 진행 중인 프로젝트에서는 200, 401, 409 등 다양한 status의 response가 상황에 따라 넘어오게 된다. 이번 포스팅은 다양한 HTTP Status 처리를 위해 리팩토링 도중 마주친 에러에 대한 포스팅이다. 1. 기존 코드 다양한 status 처리를 위해 ResultWrapper라는 sealed class를 사용하여 통신이 성공적 (Success)인지, 네트워크 통신 에러 (NetworkError)인지, 일반적인 status 에러 (Gen.. 2022. 3. 14.
'setter for isWifiEnabled: Boolean' is deprecated Android Component 중 Broadcast Receiver로 Wi-Fi 상태를 변경시키는 데모 어플리케이션을 구현하다가 버튼을 클릭해도 Wi-Fi 상태가 변하지 않았던 이슈가 있었다. Android 9 (API Level 28, P)로 낮춰야 개발 가능하다. 현재 내 프로젝트의 targetSDKVersion은 31이였다;; References https://developer.android.com/reference/android/net/wifi/WifiManager#isWifiEnabled() WifiManager | Android Developers developer.android.com https://jw0652.tistory.com/122 public boolean WifiManager.s.. 2021. 11. 4.
java.net.UnknownServiceException: CLEARTEXT communication to (..) not permitted by network security policy Retrofit2 라이브러리를 사용하여 서버와의 HTTP 통신을 구현하다 보면 아래와 같은 에러가 발생하는 경우가 있다. java.net.UnknownServiceException: CLEARTEXT communication to (..) not permitted by network security policy Network Security Policy 즉, 네트워크 보안 정책과 관련된 이슈이다. 우선, 위의 에러가 발생하는 이유는 통신하려고 하는 대상의 주소가 http로 구성되어있기 때문이다. 또한, 현재 개발하고 있는 개발환경이 Android 9.0 (API Level 28, Pie) 이상인지 확인해보아야 한다. Android 9.0부터는 네트워크를 https로 사용하도록 강제하고 있다. 아래 문서는.. 2021. 9. 29.
W/Glide : Failed to find GeneratedAppGlideModule Glide 라이브러리를 이용하여 이미지를 로드하다 보면 아래와 같은 Warning 문구를 볼 수 있다. 실제 어플리케이션을 Run 하는데 직접적인 영향을 끼치지는 않지만 왠지 모를 불편함을 느낄 수 도 있을 것 같아 해결 방법을 포스팅한다. W/Glide: Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency on com.github.bumptech.glide:compiler in your application and a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silen.. 2021. 7. 12.