Failed to resolve: com.android.support:support-annotations:26.0.2的解决方案

版权声明:转载必须注明本文转自郭子轩的博客 https://blog.csdn.net/gpf1320253667/article/details/84308588

在添加依赖的时候,出现如下报错:
在这里插入图片描述
说我缺少了support-annotations:26.0.2的依赖,那么问题来了,什么是support-annotations?我的项目里面用到了吗?

support-annotations注解库简介

android-support-annotations是Android官方提供的一个注解库,它提供了许多有用的注解,你能用它们修饰你的代码,帮助你发现bug,这些注解的生命周期为源码时期,也就是在编译之后则不再保留,通常用于辅助代码上的静态检查。

此处关于辅助代码检查我们举个例子,@NonNull这个注解大家应该都不陌生,@NonNull注解能被用来标注给定的参数或者返回值不能为null,如果一个本地变量的值为null(比如因为过早的代码检查它是否为null),而你又把它作为参数传递给了一个方法,并且该方法的参数又被@NonNull标注,那么IDE会提醒你,你有一个潜在的崩溃问题。

support-annotations注解库默认是没有包含的,他们被包装成一个独立的库,如果需要我们要去手动引入,在Gradle中引入这个库的方式通常如下:

compile 'com.android.support:support-annotations:23.1.1'

但是如果你已经通过这种方式依赖了support-v4库的话,则不必再显式声明依赖它,因为support-v4也依赖于这个库,由于Gradle的传递依赖的特性,你的项目如果依赖了support-v4库的话,也会依赖到这个注解库。

然后查看自己app的build.gradle文件,发现项目已经依赖了support-v4库了啊,按照上面所说的,如果依赖了support-v4库,也就同时依赖了support-annotations注解库,但是为什么还是会报异常呢?

同样的上面之前的做法,直接在gradle文件引入注解库的做法也是解决不了问题的,原因如下:

原因分析和解决

support annotations自25.4.0之后support包不在sdk中更新了,需要用谷歌的maven库,在Project的build.gradle中添加如下谷歌的地址,因此需要我们手动的在Project的build.gradle中添加如下谷歌的地址:

allprojects {
  repositories {
    ...
    //需要添加的部分,两个仓库添加其一即可解决  
    maven { url "https://maven.google.com"}
    maven { url "https://dl.google.com/dl/android/maven2/"}
    ...
  }
}

这样异常就完美解决了。

猜你喜欢

转载自blog.csdn.net/gpf1320253667/article/details/84308588
今日推荐