Android构建同步报debugRuntimeClasspath依赖解析错误求助
问题解决方案
错误根因
报错提示No cached version available for offline mode说明当前Gradle开启了离线模式,无法从远程仓库拉取缺失的com.google.android.gms:play-services-auth-api-phone:17.1.0依赖,同时项目存在依赖重复、版本不一致的问题也会触发类路径解析失败。
修复步骤
- 第一步:关闭Gradle离线模式
打开Android Studio,依次进入File > Settings > Build, Execution, Deployment > Build Tools > Gradle,取消勾选「Offline work」选项,保存后点击顶部工具栏的「Sync Project with Gradle Files」按钮重新同步。 - 第二步:删除重复的OneSignal依赖
你在app模块build.gradle中重复声明了OneSignal依赖,其中第一条配置了Google服务排除规则,第二条未配置,会导致冲突,删除冗余的第二条依赖即可:// 保留这条 implementation('com.onesignal:OneSignal:3.16.1') { exclude group: 'com.google.android.gms' } // 删除下面这条重复声明 // implementation 'com.onesignal:OneSignal:3.16.1' - 第三步:统一Google Play服务版本
当前项目内各Play服务依赖版本不一致,会触发Gradle自动拉取适配的中间版本,容易出现找不到版本的问题,在根项目build.gradle的allprojects块中添加全局版本锁定:
然后把app模块build.gradle中所有allprojects { ext { playServicesVersion = "20.0.0" } repositories { // 原有仓库配置保留 } }com.google.android.gms开头的依赖版本都替换为全局变量:implementation "com.google.android.gms:play-services-ads:$playServicesVersion" implementation "com.google.android.gms:play-services-gcm:$playServicesVersion" implementation "com.google.android.gms:play-services-analytics:$playServicesVersion" implementation "com.google.android.gms:play-services-auth:$playServicesVersion" implementation "com.google.android.gms:play-services-cast:$playServicesVersion" implementation "com.google.android.gms:play-services-cast-framework:$playServicesVersion" - 第四步:清理缓存重新同步
依次点击Android Studio的File > Invalidate Caches...,勾选「Clear file system cache and local history」,点击「Invalidate and Restart」重启IDE,重启后重新同步Gradle即可。
如果问题仍存在,手动删除项目根目录下的.gradle、.idea文件夹,以及app模块下的build文件夹,再重新打开项目同步。 - 第五步:检查JitPack认证配置
根项目build.gradle中配置了JitPack私有仓库的认证,确认你本地的gradle.properties文件中已经配置了正确的authToken值,如果你不需要使用JitPack私有库,可以删除credentials配置:maven { url "https://jitpack.io" // 不需要私有库就删掉下面这行 // credentials { username authToken } }
内容的提问来源于stack exchange,提问作者Sandeep Vishwakarma
相关产品推荐
相关产品推荐

