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

在添加依赖的时候,出现如下报错:
在这里插入图片描述
说我缺少了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/"}
    ...
  }
}

这样异常就完美解决了。

经过以上步骤,AndroidStudio就已经安装并且配置完成了,此时打开app的build.gradle文件
截图略
可以看到compileSdkVersion默认为25,上面的例子是因为我安装的是AndroidStudio bundle版本,默认安装的SDK的版本,如果需要更新SDK版本比如更新到28,打开SDK Manager,然后勾选

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这个问题可能是由于你的项目中使用了过时的 Android Support Library 而导致的。在最新版本的 Android Gradle 插件中,Google 已经将 Android Support Library 替换为 AndroidX。因此,你需要将你的项目迁移到 AndroidX。 要迁移到 AndroidX,你可以使用 Android Studio 中的 Refactor 工具。具体步骤如下: 1. 打开你的项目,在菜单栏中选择 Refactor -> Migrate to AndroidX。 2. 在弹出的对话框中,选择要迁移的项目和模块,然后点击 Refactor。 3. Android Studio 将会自动为你的项目更改所有依赖项和类引用,以使它们指向新的 AndroidX 库。 4. 如果 Refactor 过程中出现任何问题,你可以手动更改你的 build.gradle 文件,以使用 AndroidX 库。在 build.gradle 文件中添加以下代码: ``` android { ... defaultConfig { ... // 增加以下两行 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" android.useAndroidX=true } // 增加以下两行 configurations.all { resolutionStrategy { force 'com.android.support:support-v4:28.0.0' // 使用 28.0.0 版本的 support-v4 库 } } } // 移除以下两行 // implementation 'com.android.support:support-v4:28.0.0' // implementation 'com.android.support:appcompat-v7:28.0.0' // 增加以下两行 implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' ``` 5. 最后,点击菜单栏中的 Build -> Clean Project,等待清除完成后再点击 Build -> Rebuild Project,重新构建你的项目。 如果你还遇到其他问题,请参考 Google 的官方文档:[Migrating to AndroidX](https://developer.android.com/jetpack/androidx/migrate)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智玲君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值