升级到“ com.google.android.gms:play-services-ads:18.1.0”后,Android编译错误

时间:2019-07-19 19:07:08

标签: java android gradle google-play-services

我正在将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 / AdvertisingIdClient.class):警告:找不到类型'GuardedBy'的注释方法'value()':找不到javax.annotation.concurrent.GuardedBy的类文件

我删除了AdvertisingIdClient的所有用法,只保留了导入,但问题仍然存在:

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

我在做错什么吗?

1 个答案:

答案 0 :(得分:1)

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包装中似乎存在一个错误,我的解决方法得以解决。如果将来对build.gradle的更新解决了此错误,则可能要在模块的com.google.code.findbugs:jsr305文件中添加注释,以考虑删除com.google.android.gms:play-services-ads

相关问题