关于Flutter升级后 package 更换版本的一些小坑

本文记录了作者在使用Flutter 1.5和dart 2.0进行项目开发时,遇到的barcode_scan包与Android版本不兼容的问题。通过调整依赖版本和修改build.gradle文件,最终解决了兼容性问题。

2019年4月底开始接触flutter和dart,从flutter中文网的教程开始搭建环境,使用flutter1.0.0——stable运行demo,总体很顺利。很快的,flutter1.5在五月初发布了,于是进行了5月9号对项目进行了flutter upgrade,成功将flutter升级至1.5.4,dart升级至2.0.0以上。刚好我的项目中需要实现条码和二维码扫描的功能,于是get了barcode_scan这个包的当前最新1.0.0版,重新run项目解析依赖时候出现了以下报错:

大概就是现有的Android版本与barcode_scan1.0.0不兼容,需要将现有的flutter应用迁移至AndroidX。在flutter应用修复AndroidX崩溃的问题,官方文档上提供了较为详细的解决方案, 这里传送门

官网提供了可以避免迁移AndroidX的部分packages之前的主要版本:

由于暂不打算将应用迁移至AndroidX,我选择将barcode_scan换至AndroidX之前的可用版本。 于是在项目的pubspec.yaml文件中将依赖的barcode版本换至0.0.8,重新运行flutter packages get,成功更换项目中的barcode依赖版本. 再次运行,依然报错,报错信息忘了截图,大意是barcode的buildToolsVersion 需要在28及以上才可以使用。 于是在项目Flutter Plugins/barode_scan-0.0.8/android下的build.gradle中将 buildToolsVersion '27.0.3'这部分注释掉,再次run项目终于无报错的成功运行啦!

转载于:https://juejin.im/post/5cd3e83ce51d453a506b0ee3

### 如何将 Flutter 升级到指定版本 为了将 Flutter 升级到特定版本,可以按照以下方式操作: #### 方法一:通过 `flutter upgrade` 命令升级到指定版本 如果需要升级到某个具体的版本号,可以直接使用命令: ```bash flutter upgrade [版本号] ``` 例如,要升级到 `v2.0.3` 版本,则运行: ```bash flutter upgrade v2.0.3 ``` 此方法适用于已知目标版本的情况[^1]。 --- #### 方法二:手动切换到指定版本(基于 Git) 对于更精确的版本管理,可以通过以下步骤实现: 1. **进入 Flutter 安装目录** 使用终端导航到 Flutter 的安装路径。例如: ```bash cd /path/to/flutter ``` 2. **查看可用的历史提交记录** 访问官方 GitHub 发布页面以查找所需的版本及其对应的 Commit ID: https://github.com/flutter/flutter/releases[^2] 3. **执行回退/切换命令** 执行以下命令来切换到所需的具体版本: ```bash git reset --hard [Commit_ID] ``` 例如,假设目标版本对应的是 `4d7946a68d26794349189cf21b3f68cc6fe61dcb`,则运行: ```bash git reset --hard 4d7946a68d26794349189cf21b3f68cc6fe61dcb ``` 4. **验证当前版本** 切换完成后,可通过以下命令确认当前使用的 Flutter 版本: ```bash flutter --version ``` 此外,也可以运行 `flutter doctor` 来检查环境配置是否正常[^3]。 --- #### 方法三:切换到指定发布渠道 除了直接指定版本号之外,还可以选择不同的发布渠道(Channel)。不同渠道代表不同程度的稳定性: - `stable`: 最稳定版本。 - `beta`: 较好测试过的开发版本。 - `dev`: 新功能较多但仍需进一步完善的版本。 - `master`: 最新但可能不稳定的功能分支。 切换频道的方法如下: ```bash flutter channel [channel_name] ``` 例如,切换到 Beta 频道: ```bash flutter channel beta ``` 随后可运行以下命令同步最新的依赖包并完成更新: ```bash flutter upgrade ``` 这会自动拉取该频道下的最新版本[^5]。 --- #### 注意事项 在升级过程中可能会遇到某些插件或库不兼容的问题。此时建议逐步排查错误日志,并尝试以下措施: 1. 更新项目的依赖文件 (`pubspec.yaml`) 中的内容至最新版本。 2. 清理缓存数据后再重新构建项目: ```bash flutter clean && flutter pub get ``` 3. 如果仍然存在编译问题,可以在 Gradle 文件中调整相关设置。例如,在 Android 工程中的 `build.gradle` 添加以下内容以忽略部分警告信息: ```gradle lintOptions { disable 'InvalidPackage' checkReleaseBuilds false abortOnError false } ``` 参考相关内容处理打包失败等问题[^4]。 --- ### 总结 以上提供了三种主要途径用于将 Flutter 升级到指定版本,分别是利用内置工具、Git 提交历史以及更改发布通道的方式。每种方法各有优劣,请依据实际需求选取适合自己的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值