當前位置:編程學習大全網 - 源碼下載 - 疑難雜癥記錄3:廣告模塊以及三方sdk同步升級androidx問題

疑難雜癥記錄3:廣告模塊以及三方sdk同步升級androidx問題

廣告模塊引入了很多三方sdk,這裏的問題體現在google的admob上,期望是將admob升級到18.3.0版本,結果主工程中由於引入了firebase,具體來講就是admob和firebase都引入了google的基礎服務gms,但版本沒統壹導致了Duplicate class的錯誤。

期望將admob升級到18.3.0版本

com.google.android.gms:play-services-ads:18.3.0 這個版本裏面使用了

com.google.android.gms:play-services-measurement-base:17.1.0

我們項目中還使用了兩個google的服務框架,分別如下(已是最高版本了):

com.google.android.gms:play-services-gcm:17.0.0

com.google.firebase:firebase-core:17.0.0

這兩個包裏面使用了com.google.android.gms:play-services-measurement-base:17.0.0,導致工程現在編譯時報錯:Duplicate class com.google.android.gms.internal.measurement.zzio found in modules classes.jar (com.google.android.gms:play-services-measurement-base:17.1.0) and classes.jar (com.google.android.gms:play-services-measurement:17.0.0)

解決方法:將admob18.3.0降到18.0.0,因為這個版本裏面是play-services-measurement-base:17.0.0

上面已經定調了admob使用18.0.0,內部的play-services-measurement-base是17.0.0,更內部的firebase-iid是19.0.0。這個依賴是確定下來的了。

而在主工程中報錯日誌如下:

In project 'app' a resolved Google Play services library dependency depends on another at an exact version (e.g. "[17.0.4]", but isn't being resolved to that version. Behavior exhibited by the library will be unknown.

Dependency failing: com.google.firebase:firebase-messaging:17.3.4 -> com.google.firebase:firebase-iid@[17.0.4] , but firebase-iid version was 19.0.0.

日誌中說的也很清楚了,要將firebase-iid 17.0.4 升級到 19.0.0。下面要解決的問題是將com.google.firebase:firebase-messaging:17.3.4這個升級到內部依賴了firebase-iid version19.0.0的版本,通過在 / 上查詢搜索關鍵詞:firebase-messaging,定位到firebase-messaging:19.0.0內部依賴了firebase-iid version19.0.0,那麽在主工程中將firebase-messaging升級到19.0.0就將問題解決了。

說實話,google下面的各類服務框架包紛繁復雜,版本又不統壹,在同時引入多個google的服務框架時勢必會遇到這種問題,那麽後續解決該類問題的思路是怎樣呢? 總的思路是:先定壹個核心服務的目標版本,然後其他服務適配該核心服務版本。 比如確定了要將admob升級到18.3.0,那麽非核心的服務就需要將其內部依賴的paly-service-base保持壹致,基本上就不出現Duplicate class的問題。

  • 上一篇:求助分享通達信版德馬克TD指標公式源代碼
  • 下一篇:上海和碩產的iphone怎麽樣 6s
  • copyright 2024編程學習大全網