旧依赖导致Gradle崩溃?已卸载keyboardheightprovider仍报403错误求助
问题1解决方案:依赖添加位置
如果是原生Android项目,直接将implementation 'ro.holdone:keyboardHeightProvider:1.0.3'添加到 app模块/build.gradle 文件的dependencies代码块中即可。
如果是带platforms目录的跨端项目(Cordova/Ionic/React Native等),不要直接修改platforms/android/app/build.gradle(重新生成平台配置会被覆盖),需要对应框架的配置入口注入依赖:
- Cordova/Ionic可借助
cordova-custom-config这类插件将依赖写入上层配置 - React Native可在
android/app/build.gradle的dependencies块直接添加(该文件默认不会被框架自动覆盖)
问题2解决方案:残留报错原因&修复步骤
报错原因
你清理了platforms目录还能拉取旧包,核心是3种可能:
- Gradle本地缓存留存了旧依赖的拉取规则,没有被清理
- 你的跨端项目中某个第三方插件内部隐式依赖了旧版本的
keyboardheightprovider,在生成platforms配置时自动把旧依赖注入了build.gradle - 项目根目录的全局Gradle配置、或者node_modules中残留的插件配置里还有旧包的声明
修复步骤
- 彻底清理所有缓存
- 删除项目根目录下的
.gradle隐藏文件夹 - 进入
platforms/android目录,执行命令清理Gradle构建缓存:
gradlew cleanBuildCache- 跨端项目额外清理:删除
node_modules、plugins目录后重新安装依赖、重新添加Android平台
- 删除项目根目录下的
- 排查旧依赖来源
在platforms/android目录下执行对应命令,就可以定位到是哪个依赖引入了旧版本包:- Windows系统:
gradlew :app:dependencies | findstr keyboardheightprovider- Mac/Linux系统:
./gradlew :app:dependencies | grep keyboardheightprovider - 强制覆盖依赖版本
要是排查到是其他插件隐式引入了旧版本,可以在app模块/build.gradle的顶部添加强制版本规则,直接覆盖旧版本拉取逻辑:
配置完成后重新构建项目即可。configurations.all { resolutionStrategy.force 'ro.holdone:keyboardHeightProvider:1.0.3' }
内容的提问来源于stack exchange,提问作者oded bartov
相关产品推荐
相关产品推荐

