Flutter升级3.6.0后切换new_version_plus遇调试警告求解决
问题背景
将Flutter应用升级至3.6.0版本后,替换停止维护的new_version包为new_version_plus: ^0.0.12实现版本更新弹窗,功能正常但Android和iOS调试控制台均出现以下警告:
Package new_version_plus:android references com.codesfirst.new_version_plus:android as the default plugin, but the package does not exist, or is not a plugin package. Ask the maintainers of new_version_plus to either avoid referencing a default implementation via platforms: android: default_package: com.codesfirst.new_version_plus or create a plugin named com.codesfirst.new_version_plus.
当前实现代码:
final newVersion = NewVersionPlus( androidId: "mypackagename", ); final status = await newVersion.getVersionStatus(); //show popup if (status.canUpdate == true) { ... }
解决方案
优先升级插件版本
该警告是插件pubspec.yaml配置错误导致的,大概率已在后续版本修复。执行以下命令升级到最新版:flutter pub upgrade new_version_plus升级后重新运行项目,检查警告是否消失。
手动修改插件配置(临时方案)
如果最新版本仍未修复,可手动修改本地插件的配置文件:- 找到本地插件目录:通常在项目根目录的
.pub-cache/hosted/pub.dev/new_version_plus-<当前版本号>下 - 打开该目录下的
pubspec.yaml文件,找到platforms字段下的Android配置段,删除其中的default_package: com.codesfirst.new_version_plus行 - 保存文件后重新运行项目,警告即可消除
- 找到本地插件目录:通常在项目根目录的
反馈问题给维护者
若上述方法都无效,可去new_version_plus的代码仓库提交issue,说明该配置错误导致的警告,请求维护者修复。
内容的提问来源于stack exchange,提问作者Moshiur

