簡體   English   中英

升級到'com.google.android.gms:play-services-ads:18.1.0'后Android編譯錯誤

[英]Android compilation error after upgrading to 'com.google.android.gms:play-services-ads:18.1.0'

我正在將我的 play-services-ads 庫從 12 版升級到 18.1 版:

dependencies {
    api 'com.google.android.gms:play-services-ads:18.1.0'
}

問題是編譯失敗並出現此錯誤:

.gradle/caches/transforms-1/files-1.1/play-services-ads-identifier-17.0.0.aar/75b3c9fbdc51199269673bd2fa8b6cfe/jars/classes.jar(com/google/android/gms/ads/identifier.classAdvertising ):警告:在“GuardedBy”類型中找不到注釋方法“value()”:找不到 javax.annotation.concurrent.GuardedBy 的類文件

我拿走了 AdvertisingIdClient 的所有用法,只留下了導入,但問題仍然存在:

import com.google.android.gms.ads.identifier.AdvertisingIdClient;

有什么我做錯了嗎?

com.google.android.gms:play-services-ads:18.1.0取決於com.google.android.gms:play-services-ads-identifier:17.0.0以及其他庫。

您的錯誤表明com.google.android.gms:play-services-ads-identifier:17.0.0引用javax.annotation.concurrent.GuardedBy 但是,該類不在 Android SDK 中。 com.google.android.gms:play-services-ads-identifier:17.0.0的 POM 文件應該引用一個具有該類實現的庫,但它似乎沒有。

一個具有該類實現的庫是com.google.code.findbugs:jsr305 為最新版本(例如 3.0.2)添加對com.google.code.findbugs:jsr305的依賴為您提供了該類,使編譯器滿意。

因此,Play Services SDK 包裝中似乎存在一個錯誤,我的解決方法已解決該錯誤。 如果未來對com.google.android.gms:play-services-ads修復了此錯誤,您可能希望在模塊的build.gradle文件中添加注釋以考慮刪除com.google.code.findbugs:jsr305

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM