Android Studio更新Gradle后旧依赖报红但可正常编译运行求助
解决Android Studio更新Gradle/SDK后Volley等依赖标红但编译正常的问题
最近我把项目里的Android Studio Gradle和编译SDK版本更新后,遇到了个挺闹心的状况:IDE里Volley以及所有旧依赖全标红,提示Cannot resolve symbol 'Request',但离谱的是项目居然能正常编译运行。看着满屏的红波浪线实在难受,先把我的gradle配置贴出来:
app.gradle 配置
android { compileSdkVersion 27 buildToolsVersion "27.0.3" defaultConfig { applicationId "com.myproject.android" minSdkVersion 19 targetSdkVersion 27 versionCode 2 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } lintOptions { checkReleaseBuilds false abortOnError false } } dependencies { implementation('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') { transitive = true; } implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.google.code.gson:gson:2.8.0' implementation 'com.android.volley:volley:1.0.0' implementation 'com.facebook.fresco:fresco:1.1.0' }
project.gradle 配置
buildscript { repositories { jcenter() google() } dependencies { classpath 'com.android.tools.build:gradle:3.1.2' classpath 'com.google.gms:google-services:3.0.0' } } allprojects { repositories { jcenter() google() } } task clean(type: Delete) { delete rootProject.buildDir }
亲测有效的解决办法
这种情况我之前也踩过坑,本质就是Android Studio的索引抽风了——毕竟项目能正常编译,说明依赖配置本身没毛病。给你几个靠谱的解决步骤:
- 同步项目+清理缓存重启:先点工具栏的
Sync Project with Gradle Files同步一遍,如果没用,直接去File -> Invalidate Caches / Restart,选Invalidate and Restart让IDE彻底重建索引。这招90%的情况都能搞定。 - 调整仓库顺序:你project.gradle里把
jcenter()放在了google()前面,试试把google()移到jcenter()前面。很多官方依赖(比如Volley)在Google仓库里的索引更完整,IDE优先从这里拉取可能就不会标红了。 - 删除冗余配置文件:如果上面的方法都不管用,就关闭Android Studio,删掉项目根目录的
.idea文件夹和app模块下的build文件夹,然后重新打开项目。这相当于让IDE完全重新初始化项目配置,虽然麻烦但见效快。 - 考虑升级Gradle版本:你现在用的Gradle 3.1.2版本比较老旧了,后续如果还出现类似问题,可以尝试升级到更稳定的新版本(比如Gradle 4.x系列),不过升级前记得备份项目,避免踩新坑。
内容的提问来源于stack exchange,提问作者Ernesto Portas
相关产品推荐
相关产品推荐

