使用eghlflutter包构建AAR时提示不支持直接本地.aar依赖问题求助
根因说明
- pub.dev上当前发布的
eghlflutter 1.1.1版本未同步GitHub端的代码更新,内置的eghl-sdk仍然是旧的v2.5.2版本,因此直接通过pubspec拉取官方版本默认拿到的就是旧版sdk。 - 构建报错的本质是该插件的Android配置采用了本地aar依赖的方式,这种打包逻辑不会把本地依赖的aar文件包含到最终生成的插件AAR中,高版本Android Gradle插件会直接拦截这种错误场景并抛出异常。
解决方案
方案一:直接依赖GitHub源码版本(推荐,团队开发通用)
修改项目的pubspec.yaml文件,将eghlflutter的依赖方式从版本号依赖改为git依赖,直接拉取GitHub上已经更新了v2.5.7 sdk的最新代码,和你直接下载GitHub项目运行的版本完全一致,配置示例如下:
dependencies: flutter: sdk: flutter # 替换原有eghlflutter的版本号依赖为以下配置,url填写该插件的官方GitHub仓库地址即可 eghlflutter: git: url: 插件官方GitHub仓库地址 ref: 主分支名或者对应的提交哈希
修改完成后执行flutter pub get重新拉取依赖即可正常构建。
方案二:手动修复本地缓存的插件包
如果不想修改依赖方式,可以手动修改本地缓存的插件包内容:
- 执行
flutter pub cache clean清空pub全局缓存 - 回到项目目录执行
flutter pub get重新拉取所有依赖 - 进入报错提示的本地缓存插件目录:
/Users/mac/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/eghlflutter-1.1.1/ - 用从GitHub项目中提取的最新v2.5.7版本eghl-sdk.aar,替换目录下
android/eghl-sdk/路径中的旧版aar文件 - 打开该插件目录下的
android/build.gradle文件,修改aar依赖配置,解决本地aar不被打包的问题:
android { // 保留原有所有配置,新增以下repositories配置 repositories { flatDir { dirs 'eghl-sdk' // 对应aar文件存放的目录路径 } } } dependencies { // 替换原有直接依赖本地aar的写法为以下格式,其余原有依赖保留 implementation(name: 'eghl-sdk-v2.5.7', ext: 'aar') }
- 回到项目目录执行
flutter clean,再重新构建项目即可。
内容的提问来源于stack exchange,提问作者siva
相关产品推荐
相关产品推荐

