Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 升级到';后出现Android编译错误;com.google.android.gms:play服务广告:18.1.0';_Java_Android_Gradle_Google Play Services - Fatal编程技术网

Java 升级到';后出现Android编译错误;com.google.android.gms:play服务广告:18.1.0';

Java 升级到';后出现Android编译错误;com.google.android.gms:play服务广告:18.1.0';,java,android,gradle,google-play-services,Java,Android,Gradle,Google Play Services,我正在将我的play services广告库从版本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/clas

我正在将我的play services广告库从版本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/advisingidClient.class):警告:在类型“GuardeBy”中找不到注释方法“value()”:找不到javax.annotation.concurrent.GuardeBy的类文件

我删除了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广告标识符: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包中似乎存在一个bug,我的解决方案解决了这个bug。您可能需要在模块的代码> Buff.GooLe//Code >中添加注释,以考虑删除<代码> com。谷歌。代码。Funbugs:JSR305< /Code >如果将来更新到“代码> com。谷歌。Android:GMS:播放服务广告< /代码>修复此错误。

错误中提到的类(<代码> javax。注释。在Android SDK中似乎不存在。该类还有其他版本。基于,尝试将
实现“com.google.code.findbugs:jsr305:3.0.2”
添加到您的依赖项中,看看这是否有帮助。它可以工作!现在我想知道如何@Commonware您能解释一下发生了什么吗?
play services Basic
的AAR包含一个
proguard.txt
,它指定:
-dontwarn javax.annotation.*
,无论您是否包含一个包含
javax.annotation.concurrent.GuardedBy
您能说出哪个gradle任务失败了吗?另外,您使用的Android Studio、gradle和
com.Android.tools.build:gradle
版本是什么?@jkasnicki-classpath'com.Android.tools.build:gradle:3.4.2'@jkasnicki任务:mpsrv:compileDebugJavaWithJavac失败。