반응형
안드로이드에서 Geocoder를 사용해서 위도, 경도를 주소(서울특별시 xxxx~~)로 바꾸는 과정에서
java.io.IOException: grpc failed에러가 발생해서 해결법을 좀 찾아봤다.
보통 에뮬레이터 사용 시 에러가 발생한다는 글을 많이 발견했는데,
원인은 네트워크 연결이 불안정해서 이런 현상이 발생할 수도 있다는 것이다.
해결법은 간단하게 에뮬레이터에서 인터넷을 Wi-fi가 아닌 LTE(데이터)로 바꿔주었더니 문제가 해결되었다.
또한 try~catch문을 사용해서 에러 발생 시 해당 부분을 재시도 하는 걸로 해결해 볼 수도 있다고 한다.
추가) Geocoder사용 시에 변환하려는 좌표값(위도, 경도)가 소수점 3자리를 넘어가면
이런 현상이 가끔 발생한다는 글도 발견했다.
위의 방법으로 해결이 안되는 분들은 좌표를 소수점 3자리 이하로 잘라서 해보시길 바란다.
해결) 좀 더 잘 찾아보니 정확한 해결법을 찾아냈다.
GEOCoder를 사용한 좌표 -> 주소 변경은 시간을 많이 사용하는 작업이기 때문에
안드로이드에선 이를 Main쓰레드에서 동기화작업을 수행할 순 없다. (ANR이 발생하기 때문)
따라서 이 작업은 비동기 작업으로 수행해주어야 한다.
필자는 Coroutines를 사용하여 address LiveData를 업데이트 하여 이 값을 뷰에 업데이트 하는걸 추천한다.
반응형
'안드로이드 > 개발관련(Kotlin)' 카테고리의 다른 글
안드로이드에서 Nodejs와 socket.io를 사용해 소켓 통신하기 (0) | 2023.02.27 |
---|---|
안드로이드 GPS로 현재 내 위치좌표 구하는법(Kotlin) (0) | 2023.02.27 |
안드로이드에서 AES256알고리즘을 사용하여 암/복호화 (0) | 2023.02.27 |
안드로이드 이미지 업/다운로드(Blob, Nodejs, mysql) (0) | 2023.02.27 |
안드로이드에서 Zxing을 사용하여 QR코드 생성/스캔 (0) | 2023.02.27 |