将JCenter()替换为mavenCentral()后出现webrtc依赖报错如何解决
依赖找不到问题解决方案
该报错核心原因是org.webrtc:google-webrtc:1.0.32006版本仅曾上传至JCenter仓库,并未同步到MavenCentral,JCenter停止服务后无法通过MavenCentral拉取到该依赖,可通过以下方案解决:
- 方案1:替换为MavenCentral收录的官方WebRTC版本(最推荐)
谷歌官方已将WebRTC新版本同步到MavenCentral,无需额外添加其他仓库即可拉取。将app模块build.gradle中原有的依赖:
替换为MavenCentral收录的版本即可,示例如下:implementation 'org.webrtc:google-webrtc:1.0.32006'
新版本与旧版本API兼容性较高,仅少量边缘接口存在差异,简单适配即可正常使用。implementation 'com.google.webrtc:google-webrtc:116.0.5845.96' - 方案2:添加包含该旧版本的第三方公共仓库
如果你必须使用1.0.32006这个特定版本,不想适配新API,可在项目仓库配置中新增第三方仓库地址:Gradle7.0+版本在settings.gradle的dependencyResolutionManagement -> repositories块中添加,旧版本在根目录build.gradle的allprojects -> repositories块中添加,配置内容如下:
该公共仓库已收录该历史版本,配置完成后重新同步项目即可拉取。maven { url 'https://www.jitpack.io' } - 方案3:本地依赖对应安装包
如果你能获取到google-webrtc-1.0.32006.aar安装包,可直接将其放到app模块的libs目录下,然后在app模块build.gradle中添加本地依赖配置:
不需要拉取远程仓库即可正常构建。implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar']) - 方案4:上传至私有Maven仓库
如果团队有私有Maven仓库,可将该版本的安装包上传到私有仓库,再在项目中配置私有仓库地址,稳定性高于公共第三方仓库,适合企业级项目使用。
注意事项
所有配置修改完成后,先执行./gradlew clean清理构建缓存,再重新同步项目,避免缓存导致的拉取失败。
内容的提问来源于stack exchange,提问作者ganpat malekar
相关产品推荐
相关产品推荐

