Simple&Natural

안드로이드 Legacy Code 로 인해 빌드가 되지 않는 경우 본문

안드로이드(Android)/이슈 및 해결

안드로이드 Legacy Code 로 인해 빌드가 되지 않는 경우

Essense 2020. 3. 5. 03:21
728x90

안드로이드 프로젝트를 장기간 숙성[?]시킨 후 다시 불러와서 빌드하다보면 

각종 라이브러리들이 엄청난 레거시 코드를 만들어내면서 불지옥을 만들어낸다.

 

오늘은 예전에 연습용으로 썼던 프로젝트 소스코드에서 레거시 문제가 터져서 헤메던 중이었다.

 

모듈이 참조하고 있는 라이브러리에 해당 클래스가 사라진 것으로 보임.

gradle과 라이브러리를 확인해본다.

 

 

동적패스로 지정해놓아 자동으로 최신 버전의 라이브러리를 잡고 있었다.

 

LegacyAudioDeviceModule Class가 존재하지 않는다.

이 경우 라이브러리가 업데이트되면서 해당 레거시 코드가 사라졌을 가능성이 높기에

버전들을 검토하며 해당 레거시 코드가 존재하는 버전으로 바꿔주면 일단 문제는 해결된다.

 

 

해당 라이브러리의 구글 저장소를 가면 이런 버전들이 쫙... 나와있다...

보려고 했더니 aar 확장자로 지정되어 있어 소스코드를 볼 수가 없었다.

대충 버전을 때려맞추다 보니 한 두 번 만에 레거시 코드가 있는 버전을 찾을 수 있었다.

 

 

문제가 생겼던 해당 레거시 코드가 있다

 

미리 찾아놨던 버전으로 다시 빌드를 실행해주면 에러는 깔끔히 없어진다.

사실 업데이트된 버전에 맞게 새롭게 리팩토링을 해주는 게 가장 베스트지만

상당히 까다롭기도 하고 이번엔 단순히 검토차 실행해보는 게 목적이었기 때문에 굳이 그럴 필요는 없었다.

 

아직 저장소나 빌드 시스템에 대해서는 공부가 많이 필요해서 틈틈이 지식을 익혀두어야겠다.

 

 

 

 

++

app과 타 모듈에서도 webrtc 의존성이 필요하므로 추가 바람

728x90