Flutter升级至3.27.2后ssh2 v2.2.3包无法构建求助
问题修复方案
不需要降级Flutter,以下几种方法可解决ssh2 v2.2.3无法构建的问题:
方法1:手动修改ssh2插件的Android构建配置
此方法直接修改已安装的插件文件,快速解决问题:
- 定位ssh2插件的Android构建文件:
- Windows系统:
%USERPROFILE%\.pub-cache\hosted\pub.dev\ssh2-2.2.3\android\build.gradle - Mac/Linux系统:
~/.pub-cache/hosted/pub.dev/ssh2-2.2.3/android/build.gradle
- Windows系统:
- 打开文件后,在
android代码块内添加namespace配置,示例如下:android { namespace 'net.x11ssh.ssh2' compileSdkVersion 33 defaultConfig { minSdkVersion 21 } lintOptions { disable 'InvalidPackage' } } - 保存文件后,重新执行
flutter run或flutter build命令
注意:后续若执行pub get或flutter pub upgrade更新插件,该修改会被覆盖,需重新操作。
方法2:使用本地修改版插件
若想避免每次更新插件都重复修改,可本地维护插件代码:
- 下载ssh2 v2.2.3版本的源码到本地
- 进入源码的
android目录,修改build.gradle添加上述namespace配置 - 在你的Flutter项目
pubspec.yaml中,将ssh2依赖改为本地路径:dependencies: ssh2: path: ./本地ssh2插件存放路径 - 执行
flutter pub get后重新构建项目
方法3:等待插件官方更新
此问题源于Flutter 3.27.x升级了AGP版本,要求所有Android模块必须指定namespace,但ssh2 v2.2.3未适配该规则。你可以:
- 关注pub.dev上ssh2插件的版本更新,新版本大概率会修复该问题
- 到插件的代码仓库提交issue,提醒作者适配新的AGP要求
关于AGP Upgrade Assistant灰色不可用的问题:该工具用于升级你自身项目的AGP配置,当前问题出在第三方依赖插件上,因此助手无法识别处理,属于正常现象。
内容的提问来源于stack exchange,提问作者Peter Thompson
相关产品推荐
相关产品推荐

