Simple&Natural

전이종속성 충돌 오류 해결 - protobuf 관련 (임시) 본문

과제/이슈 및 해결

전이종속성 충돌 오류 해결 - protobuf 관련 (임시)

Essense 2022. 4. 28. 14:26
728x90

쉽게 말해 의존 라이브러리 내 또 다른 의존 라이브러리들끼리 충돌하는 이슈이다.

 

Gradle 내 라이브러리를 정리하는 과정에서

서로 다른 라이브러리간 하위 종속성이 충돌하는 이슈가 발생하였다.

 

A와 B의 종속성을 맞춰주면 B와 C가 충돌하고 이를 맞추면 C와 D가 충돌하는 딜레마(?)가 지속적으로 발생하였다.

주류 라이브러리가 아닌지라 업데이트 지원이 제대로 이루어지지 않아 호환성을 맞춰주는 데 매우 애를 먹었다.

 

우선 라이브러리 내 하위 종속성 트리를 모두 trace하여 서로 충돌이 나는 종속성을 확인한 뒤 gradle 내에서 exclude 해주는 방법으로 이슈를 해결하였다.

 


 

1차는 Firebase Performance와 Bitcoinj 에서 충돌

 

./gradlew app:dependencies
./gradlew app:dependencies --dependency modulename //모듈과함께
./gradlew app:dependencies --configuration compile //의존성 구성값과함께

 

 

BouncyCastle 충돌 관련 문제로 인해 종속성 tree trace 후 

하나로 통일하여 해결함

 


종속관계 트리 확인 방법 ref

1.

https://medium.com/harrythegreat/gradle%EC%97%90%EC%84%9C-dependency-conflict-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0-57dbba3a3231

2.

https://calatheas.tistory.com/entry/gradle-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EB%B2%84%EC%A0%84-%EC%B6%A9%EB%8F%8C%EB%B2%84%EC%A0%84%EC%9D%B4-%EC%97%AC%EB%9F%AC%EA%B0%9C%EC%9D%B8-%EA%B2%BD%EC%9A%B0

728x90