【发布时间】:2019-11-28 19:08:05
【问题描述】:
我正在将我的 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;
是不是我做错了什么?
【问题讨论】:
-
错误中提到的类 (
javax.annotation.concurrent.GuardedBy) 在 Android SDK 中似乎不存在。该类还有其他版本,such asandroidx.annotation.GuardedBy。基于this old bug report,尝试将implementation "com.google.code.findbugs:jsr305:3.0.2"添加到您的依赖项中,看看是否有帮助。 -
有效!现在我想知道如何...... @CommonsWare 你能解释一下发生了什么吗?
-
play-services-basement的 AAR 包含一个proguard.txt,它指定:-dontwarn javax.annotation.**无论您是否包含包含javax.annotation.concurrent.GuardedBy的依赖项,都应该允许您的应用成功 ProGuard gradle 任务失败?另外,您使用的是什么版本的 Android Studio、gradle 和com.android.tools.build:gradle? -
@jkasnicki - 类路径'com.android.tools.build:gradle:3.4.2'
-
@jkasnicki 任务 :mpsrv:compileDebugJavaWithJavac 失败。
标签: java android gradle google-play-services