Flutter安卓端screen_protector依赖导入构建失败问题咨询
Flutter 引入 screen_protector 后安卓构建失败问题解答
问题答疑
- pub.dev发布的包出现依赖资源找不到的原因
screen_protector的安卓原生实现依赖第三方原生库,该库托管在JitPack仓库。新建Flutter项目默认的安卓构建配置仅包含Google Maven、Maven中央仓、Flutter官方依赖仓、jcenter四个仓库源,未添加JitPack,因此Gradle无法检索到对应原生依赖。这类问题非常常见,所有依赖JitPack托管原生组件的Flutter插件,在工程未提前配置对应仓库时都会触发同类报错。 - 声明插件版本为1.1.1,报错却检索1.0.0版本原生库的原因
1.1.1是Dart层Flutter插件的版本号,和插件内部依赖的安卓原生库版本没有强制对齐要求。查阅1.1.1版本screen_protector的安卓构建脚本可以确认,其内部硬编码依赖的原生库版本就是1.0.0,构建时检索该版本属于符合配置逻辑的正常行为。 - 两个问题的关联性
二者是同一根因触发的关联现象:正是因为插件依赖的1.0.0版本原生库仅托管在未配置的JitPack仓库中,才会抛出资源找不到的构建错误。
修复步骤
- 打开项目下
android/build.gradle文件,定位到allprojects作用域内的repositories配置块 - 和现有仓库配置同级,添加JitPack仓库配置:
maven { url 'https://jitpack.io' }
- 保存配置后,在项目根目录执行
flutter clean清理历史构建缓存,重新构建即可正常拉取依赖。
注意:不要把上述仓库配置写到
buildscript作用域下的repositories块中,必须放在allprojects的repositories段内,否则插件模块依旧无法拉取对应依赖。
内容的提问来源于stack exchange,提问作者devrob
相关产品推荐
相关产品推荐

