일모도원(日暮途遠) 개발자

[안드로이드 오류수정] 구글 애드몹 버전 이슈 본문

안드로이드 개발/오류수정

[안드로이드 오류수정] 구글 애드몹 버전 이슈

달님개발자 2023. 4. 16. 22:14

구글 플레이에 앱을 올리니 아래와 같은 워닝이 나온다.

The developer of Google Mobile Ads (GMA) SDK (com.google.android.gms:play-services-ads) added the following note to SDK version 19.3.0:This version is officially deprecated, and will soon disable ad loading. Please update to a new version. See https://developers.google.com/admob/android/deprecation for more details.

내 코드를 보면 아래처럼 19.3.0을 쓰고 있다.

implementation 'com.google.android.gms:play-services-ads:19.3.0'

 

최신 버전을 알아보니 22.0.0이다.
implementation 'com.google.android.gms:play-services-ads:22.0.0'

 

근데 최신 버전으로 올리니, 아래처럼 무시무시한 에러가 난다. 

Duplicate class com.google.android.gms.internal.measurement.zzhx found in modules jetified-play-services-measurement-base-20.1.2-runtime (com.google.android.gms:play-services-measurement-base:20.1.2) and jetified-play-services-measurement-impl-19.0.2-runtime (com.google.android.gms:play-services-measurement-impl:19.0.2)

 

챗GPT에 물어보니 중복된 라이브러리(com.google.android.gms:play-services-measurement-base and com.google.android.gms:play-services-measurement-impl)가 있는 dependency를 찾아라고 한다.

 

명령어를 물어보니 터미널에서 " ./gradlew app:dependencies"를 입력하라고 한다.

출력이 너무 길어서 ./gradlew app:dependencies > ~/Downloads/admob.txt 로 결과물을 txt파일로 저장했다.

 

보니까, firebase에서도 같은 라이브러리를 쓰고 있다. 그런데 firebase에서는 19.0.2를 쓰고 있는데 20.1.2를 쓰라고 한다.
com.google.android.gms:play-services-ads:22.0.0

com.google.firebase:firebase-core:19.0.2

 

검색해보니 최신버전이 21.1.1이었다. 그래서 firebase-core 버전도 올리니 Duplicate Class에러가 사라졌다. 

implementation 'com.google.firebase:firebase-core:21.1.1'