Android 升级到 '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'
我正在将我的播放服务广告库从版本 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/AdvertisingIdClient.class): warning: Cannot find annotation method 'value()' in type 'GuardedBy': class file for javax.annotation.concurrent.GuardedBy not found
我去掉了 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
。但是,class 不在 Android SDK 中。 com.google.android.gms:play-services-ads-identifier:17.0.0
的 POM 文件应该引用一个实现了 class 的库,但它似乎没有。
一个实现了 class 的库是 com.google.code.findbugs:jsr305
。为最近的版本(例如 3.0.2)添加对 com.google.code.findbugs:jsr305
的依赖可以让你 class,满足编译器。
因此,Play 服务 SDK 打包中似乎存在错误,我的解决方法解决了该错误。如果将来对 com.google.android.gms:play-services-ads
的更新修复了此错误,您可能希望在模块的 build.gradle
文件中添加注释以考虑删除 com.google.code.findbugs:jsr305
。
我正在将我的播放服务广告库从版本 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/AdvertisingIdClient.class): warning: Cannot find annotation method 'value()' in type 'GuardedBy': class file for javax.annotation.concurrent.GuardedBy not found
我去掉了 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
。但是,class 不在 Android SDK 中。 com.google.android.gms:play-services-ads-identifier:17.0.0
的 POM 文件应该引用一个实现了 class 的库,但它似乎没有。
一个实现了 class 的库是 com.google.code.findbugs:jsr305
。为最近的版本(例如 3.0.2)添加对 com.google.code.findbugs:jsr305
的依赖可以让你 class,满足编译器。
因此,Play 服务 SDK 打包中似乎存在错误,我的解决方法解决了该错误。如果将来对 com.google.android.gms:play-services-ads
的更新修复了此错误,您可能希望在模块的 build.gradle
文件中添加注释以考虑删除 com.google.code.findbugs:jsr305
。