繁体   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