![](/img/trans.png)
[英]Implementation 'com.google.android.gms:play-services-ads:18.1.0'
[英]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.