React Native添加react-native-image-crop-picker后jcenter()移除报错如何解决
问题根因
你自己的根目录build.gradle确实没有配置jcenter,报错是因为低版本react-native-image-crop-picker的内部构建配置默认依赖了jcenter仓库,而新版Android Gradle插件已禁止使用jcenter作为构建仓库,因此触发报错。
解决方案1(优先推荐:升级依赖版本)
react-native-image-crop-picker从v0.38.0+版本开始已经完全移除了jcenter依赖,你只需要升级到最新正式版即可解决问题:
# npm npm install react-native-image-crop-picker@latest # yarn yarn add react-native-image-crop-picker@latest
升级后重新执行构建即可,无需修改其他配置。
解决方案2(无法升级版本时使用:强制移除jcenter引用)
如果你因为项目兼容问题无法升级该依赖,可以在根目录build.gradle的allprojects代码块中添加过滤规则,强制移除所有子项目引入的jcenter仓库。
修改后的allprojects配置如下:
allprojects { repositories { mavenCentral() mavenLocal() maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm url("$rootDir/../node_modules/react-native/android") } maven { // Android JSC is installed from npm url("$rootDir/../node_modules/jsc-android/dist") } google() maven { url 'https://maven.google.com' } maven { url 'https://www.jitpack.io' } // 新增:过滤移除所有jcenter仓库 all { ArtifactRepository repo -> if (repo instanceof MavenArtifactRepository && repo.url.toString().startsWith("https://jcenter.bintray.com/")) { remove repo } } } }
修改后重新构建即可。
提示:如果修改后依然出现jcenter相关报错,可使用同样的过滤规则处理,或排查其他引入的第三方依赖是否存在老旧的jcenter配置。
内容的提问来源于stack exchange,提问作者Chen Triều
相关产品推荐
相关产品推荐

