목록안드로이드(Android) (70)
Simple&Natural
30~40개 정도의 URL에 동시에 요청을 보내서 값을 받아와 파싱해야 하는 작업이 있었다. 루프를 돌려 반복해서 요청을 보내보니 적게는 1~2개에서 많게는 10개 이상까지 계속해서 다양한 exception이 발생하였다. 원인을 찾기 위해 우선 몇 가지 케이스를 나누고 검증을 시작했다. 1. 요청 단계에서 문제가 생긴 경우 2. 응답이 문제가 있는 경우 3. 정상적인 요청과 응답이 이루어진 이후에 문제가 발생하는 경우 우선 간단히 로그를 찍어보니 모든 요청들이 정상적인 응답코드를 반환하고 있었으므로 1, 2번 케이스는 제외하였다. 그렇다면 남은 가능성은 정상적인 응답을 받아오는데도 불구하고 내 쪽에서 제대로 된 처리를 하지 못하는 것이다. 마찬가지로 로그를 통해 어떤 예외들이 찍히고 있는지 살펴보았다. ..
https://superfelix.tistory.com/201
안드로이드 프로젝트를 장기간 숙성[?]시킨 후 다시 불러와서 빌드하다보면 각종 라이브러리들이 엄청난 레거시 코드를 만들어내면서 불지옥을 만들어낸다. 오늘은 예전에 연습용으로 썼던 프로젝트 소스코드에서 레거시 문제가 터져서 헤메던 중이었다. 모듈이 참조하고 있는 라이브러리에 해당 클래스가 사라진 것으로 보임. gradle과 라이브러리를 확인해본다. 동적패스로 지정해놓아 자동으로 최신 버전의 라이브러리를 잡고 있었다. LegacyAudioDeviceModule Class가 존재하지 않는다. 이 경우 라이브러리가 업데이트되면서 해당 레거시 코드가 사라졌을 가능성이 높기에 버전들을 검토하며 해당 레거시 코드가 존재하는 버전으로 바꿔주면 일단 문제는 해결된다. 해당 라이브러리의 구글 저장소를 가면 이런 버전들이 ..
안드로이드 스튜디오에서 이저러러한 라이브러리들을 추가하다보면 충돌이 나는 경우를 상당히 자주 보게된다. 근데 늘 하던대로 단순히 RecyclerView를 Dependencies에 추가했던 것 뿐인데 갑자기 이런 오류를 마주함. 이번엔 좀 다르게 공식문서에 나와있는대로 스크립트를 추가해보았는데 문제가 발생하였다. 이 문제는 아마 동기화 관련 문제로 보이는데 해결책은 다음과 같다 Go to File -> Invalidate Caches/Restart. (이때 Restart는 제외하고 Invalidate만 선택하도록 한다) Close the project. Go to project folder and delete .idea folder. Delete YourProjectName.iml in project fo..