Android构建报错:无法解析floatingactionbutton-1.10.1依赖,求助
这个错误的核心原因是:你项目中的某个依赖间接引入了net.i2p.android.ext:floatingactionbutton:1.10.1,而这个包托管的JCenter仓库已经停止服务(仅保留只读模式且部分内容已移除),新电脑没有本地缓存,所以无法拉取到该文件。旧电脑能正常运行是因为本地Gradle缓存里已经保存了这个包。
结合你的依赖配置和实际使用的Material Design悬浮按钮,给你几个可行的解决方案:
方案1:排除间接引入的旧FAB依赖
你实际使用的是com.google.android.material.floatingactionbutton.FloatingActionButton,完全不需要那个旧的net.i2p.android.ext版本的FAB库。只需要找到引入它的上游依赖,把它排除掉即可:
先执行Gradle命令定位依赖来源:
- 如果你是Mac/Linux:在终端运行
./gradlew app:dependencies - 如果你是Windows:在命令行运行
gradlew.bat app:dependencies
搜索输出内容里的net.i2p.android.ext:floatingactionbutton:1.10.1,找到它所属的上游依赖(大概率是com.github.axet下的某个库,比如fbreader:library或者android-library)。
- 如果你是Mac/Linux:在终端运行
在对应的依赖声明中添加排除规则,比如:
// 假设是fbreader库引入的,就这么写 implementation('com.github.axet.fbreader:library:0.1.14') { exclude group: 'net.i2p.android.ext', module: 'floatingactionbutton' } // 同时检查android-library,也加上排除 implementation('com.github.axet:android-library:1.32.20') { exclude group: 'net.i2p.android.ext', module: 'floatingactionbutton' }删掉你自己添加的
com.getbase:floatingactionbutton:1.10.1依赖——这个和报错的库不是同一个,完全解决不了问题。
方案2:临时添加JCenter的定向访问(不推荐长期使用)
如果排除依赖后出现其他兼容性问题,你可以临时在项目的settings.gradle(或build.gradle)中添加仅针对net.i2p组的JCenter访问,避免拉取其他废弃内容:
repositories { // 其他仓库(mavenCentral, google等)保持不变 jcenter { content { includeGroupByRegex "net.i2p.*" } } }
注意:JCenter已经停止维护,这个方案只是临时过渡,建议优先用方案1彻底移除对它的依赖。
最后,执行Clean Project + Rebuild Project,或者Invalidate Caches & Restart,问题应该就能解决了。
内容的提问来源于stack exchange,提问作者Alpesh Savaliya

