升级compileSdkVersion 35后Android项目依赖解析失败求助
解决TargetSdkVersion 35下的Android依赖解析问题
问题概述
将项目compileSdkVersion和targetSdkVersion设置为35时,出现以下依赖解析失败错误:
Failed to resolve: com.baoyz.swipemenulistview:library:1.3.0 Failed to resolve: com.tbruyelle.rxpermissions2:rxpermissions:0.9.5 Failed to resolve: cn.carbswang.android:NumberPickerView:1.2.0
降级至targetSdk33可正常构建,已尝试调整AGP/Gradle版本、更新Android Studio、检查仓库地址、验证依赖版本等操作无效。
解决方案
1. 修正依赖坐标(针对仓库迁移的情况)
部分依赖的仓库或坐标已发生变化,需按以下方式修正:
- SwipeMenuListView:原依赖坐标已失效,改用JitPack上的正确坐标(对应GitHub项目
baoyongzhang/SwipeMenuListView):implementation 'com.github.baoyongzhang:SwipeMenuListView:1.3.0' - RxPermissions2:移除
@aar后缀,改用MavenCentral上的标准坐标:
若仍无法解析,尝试升级到最新兼容版本implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.5'0.10.2:implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.10.2' - NumberPickerView:尝试升级到最新版本
1.3.0以适配API35:implementation 'cn.carbswang.android:NumberPickerView:1.3.0'
2. 适配AGP 8.x的仓库配置规则
AGP 8.x及以上版本已废弃allprojects块的仓库配置,需将仓库定义迁移至settings.gradle:
pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() maven { url 'https://jitpack.io' } } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url 'https://jitpack.io' } } } rootProject.name = "WelbornApp" include ':app'
同时删除根目录build.gradle中的allprojects块。
3. 替换不兼容的旧依赖
上述依赖均为长期未维护的库,可能无法适配API35,建议替换为维护中的替代方案:
- SwipeMenuListView:迁移至AndroidX RecyclerView,配合侧滑菜单库如
com.yanzhenjie.recyclerview:swipe:1.3.2实现侧滑功能 - RxPermissions2:改用AndroidX原生
ActivityResultContracts,结合RxJava包装实现权限请求逻辑 - NumberPickerView:直接使用AndroidX原生
NumberPicker组件,或选用更新的第三方库如com.github.skydoves:numberpicker:2.2.0
4. 强制刷新依赖缓存
执行以下命令清理缓存并重新构建:
./gradlew clean build --refresh-dependencies
或在Android Studio中执行File -> Invalidate Caches... -> Invalidate and Restart。
内容的提问来源于stack exchange,提问作者Shubham Tiwari
相关产品推荐
相关产品推荐

