记录一次 Flutter 项目升级 3.32.8 过程

视频
前言
本文记录了在升级 Woo2025 项目到 Flutter SDK 3.32.8 过程中遇到的问题及解决方案,为开发者提供实用的经验分享。
项目代码是我的课程代码 电商woo2025。


正文
Android Studio 环境
https://developer.android.com/studio?hl=zh-cn
下载最新的 android studio

最新的 SDK 36



XCode 环境


Flutter SDK 稳定版
https://docs.flutter.dev/install/archive
选择稳定版本

可以用 fvm 进行管理
升级依赖包
检查可升级包
flutter pub outdated
输出
❯ flutter pub outdated
Showing outdated packages.
[*] indicates versions that are not the latest available.
Package Name                           Current     Upgradable  Resolvable  Latest
direct dependencies:
adaptive_theme                         *3.7.0      -           3.7.1+2     3.7.1+2
carousel_slider                        *5.0.0      -           5.1.1       5.1.1
dio                                    *5.7.0      -           5.9.0       5.9.0
flutter_picker_plus                    *1.3.0      -           1.5.2       1.5.2
flutter_svg                            *2.0.17     -           2.2.0       2.2.0
get                                    *4.6.6      -           4.7.2       4.7.2
intl                                   *0.19.0     -           0.20.2      0.20.2
package_info_plus                      *8.1.3      -           8.3.1       8.3.1
permission_handler                     *11.3.1     -           12.0.1      12.0.1
shared_preferences                     *2.3.5      -           2.5.3       2.5.3
wechat_assets_picker                   *9.4.2      -           9.8.0       9.8.0
wechat_camera_picker                   *4.3.6      -           4.4.0       4.4.0
dev_dependencies:
flutter_lints                          *4.0.0      -           6.0.0       6.0.0
flutter_native_splash                  *2.4.2      -           2.4.6       2.4.6
icons_launcher                         *3.0.0      -           3.0.1       3.0.1
transitive dependencies:
args                                   *2.6.0      -           2.7.0       2.7.0
asn1lib                                *1.5.8      -           1.6.5       1.6.5
async                                  *2.11.0     -           2.13.0      2.13.0
camera                                 *0.10.6     -           *0.10.6     0.11.2
camera_android                         *0.10.9+17  -           0.10.10+5   0.10.10+5
camera_avfoundation                    *0.9.17+6   -           0.9.21+1    0.9.21+1
camera_platform_interface              *2.8.0      -           2.10.0      2.10.0
characters                             *1.3.0      -           *1.4.0      1.4.1
clock                                  *1.1.1      -           1.1.2       1.1.2
collection                             *1.19.0     -           1.19.1      1.19.1
dio_web_adapter                        *2.0.0      -           2.1.1       2.1.1
extended_image                         *8.3.1      -           10.0.1      10.0.1
extended_image_library                 *4.0.5      -           5.0.1       5.0.1
ffi                                    *2.1.3      -           2.1.4       2.1.4
flutter_plugin_android_lifecycle       *2.0.24     -           2.0.29      2.0.29
flutter_spinkit                        *5.2.1      -           5.2.2       5.2.2
html                                   *0.15.5     -           0.15.6      0.15.6
http                                   *1.2.2      -           1.5.0       1.5.0
http_parser                            *4.0.2      -           4.1.2       4.1.2
js                                     *0.7.1      -           0.7.2       0.7.2      (discontinued)
material_color_utilities               *0.11.1     -           *0.11.1     0.13.0
meta                                   *1.15.0     -           *1.16.0     1.17.0
mime                                   -           -           2.0.0       2.0.0
package_info_plus_platform_interface   *3.0.2      -           3.2.1       3.2.1
path                                   *1.9.0      -           1.9.1       1.9.1
path_provider_android                  *2.2.12     -           2.2.17      2.2.17
path_provider_foundation               *2.4.0      -           2.4.2       2.4.2
permission_handler_android             *12.0.13    -           13.0.1      13.0.1
permission_handler_apple               *9.4.5      -           9.4.7       9.4.7
permission_handler_platform_interface  *4.2.3      -           4.3.0       4.3.0
petitparser                            *6.0.2      -           *6.1.0      7.0.1
photo_manager                          *3.6.3      -           3.7.1       3.7.1
pointycastle                           *3.9.1      -           *3.9.1      4.0.0
provider                               *6.1.2      -           6.1.5+1     6.1.5+1
sensors_plus                           *5.0.1      -           6.1.2       6.1.2
sensors_plus_platform_interface        *1.2.0      -           2.0.1       2.0.1
shared_preferences_android             *2.4.2      -           2.4.11      2.4.11
shared_preferences_foundation          *2.5.3      -           2.5.4       2.5.4
shared_preferences_web                 *2.4.2      -           2.4.3       2.4.3
source_span                            *1.10.0     -           1.10.1      1.10.1
sqflite                                *2.4.1      -           2.4.2       2.4.2
sqflite_android                        *2.4.0      -           *2.4.1      2.4.2+2
sqflite_common                         *2.5.4+5    -           2.5.6       2.5.6
sqflite_darwin                         *2.4.1      -           2.4.2       2.4.2
string_scanner                         *1.3.0      -           1.4.1       1.4.1
synchronized                           *3.3.0+3    -           3.4.0       3.4.0
term_glyph                             *1.2.1      -           1.2.2       1.2.2
vector_graphics                        *1.1.14     -           1.1.19      1.1.19
vector_graphics_codec                  *1.1.12     -           1.1.13      1.1.13
vector_graphics_compiler               *1.1.15     -           1.1.18      1.1.18
vector_math                            *2.1.4      -           *2.1.4      2.2.0
video_player                           *2.9.2      -           2.10.0      2.10.0
video_player_android                   *2.7.16     -           2.8.12      2.8.12
video_player_avfoundation              *2.6.5      -           2.8.4       2.8.4
video_player_platform_interface        *6.2.3      -           6.4.0       6.4.0
video_player_web                       *2.3.3      -           2.4.0       2.4.0
web                                    *1.1.0      -           1.1.1       1.1.1
wechat_picker_library                  *1.0.5      -           1.0.7       1.0.7
win32                                  *5.8.0      -           5.14.0      5.14.0
xml                                    *6.5.0      -           *6.5.0      6.6.1
transitive dev_dependencies:
archive                                *3.6.1      -           4.0.7       4.0.7
boolean_selector                       *2.1.1      -           2.1.2       2.1.2
fake_async                             *1.3.1      -           1.3.3       1.3.3
image                                  *4.3.0      -           4.5.4       4.5.4
leak_tracker                           *10.0.7     -           *10.0.9     11.0.1
leak_tracker_flutter_testing           *3.0.8      -           *3.0.9      3.0.10
leak_tracker_testing                   *3.0.1      -           *3.0.1      3.0.2
lints                                  *4.0.0      -           6.0.0       6.0.0
matcher                                *0.12.16+1  -           0.12.17     0.12.17
posix                                  -           -           6.0.3       6.0.3
stack_trace                            *1.12.0     -           1.12.1      1.12.1
stream_channel                         *2.1.2      -           2.1.4       2.1.4
test_api                               *0.7.3      -           *0.7.4      0.7.7
vm_service                             *14.3.0     -           *15.0.0     15.0.2
yaml                                   *3.1.2      -           3.1.3       3.1.3
No resolution was found. Try running `flutter pub upgrade --dry-run` to explore why.
js
    Package js has been discontinued. See https://dart.dev/go/package-discontinue
更新依赖包
flutter pub upgrade
推荐手动更新
清理重构
flutter clean
flutter pub get
flutter run
处理包冲突,一般都是 sdk dart 版本不适配造成的。
intl 0.20.2 升级
[flutter_woo_course_2025_release_3_27] flutter pub get --no-example
Resolving dependencies...
Note: intl is pinned to version 0.20.2 by flutter_localizations from the flutter SDK.
See https://dart.dev/go/sdk-version-pinning for details.
Because flutter_woo_course_2025 depends on flutter_localizations from sdk which depends on intl 0.20.2, intl 0.20.2 is required.
So, because flutter_woo_course_2025 depends on intl ^0.19.0, version solving failed.
You can try the following suggestion to make the pubspec resolve:
* Try upgrading your constraint on intl: flutter pub add intl:^0.20.2
Failed to update packages.
exit code 1
提高 android 兼容性
编辑 android/app/build.gradle
android {
    compileSdk = 36
    ndkVersion = "27.0.12077973"
  
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_1_8
    }
    defaultConfig {
        applicationId "com.ducafecat.woo2025"
        minSdk = 26 //flutter.minSdkVersion
        targetSdk = 34 //flutter.targetSdkVersion
        versionCode = flutter.versionCode
        versionName = flutter.versionName
    }
compileSdk 编译版本,我们设置到最新的 36
ndkVersion 是我们 sdk tools 中安装的版本
minSdk 最小版本 26
targetSdk 最大版本,我们不要太大也不要小小,主流版本就行,否则可能会造成安装在客户机上,表现出来各种奇怪的问题(图片裂开、错位、文字不换行等等)。
小结
希望我这次升级时候遇到的几个点对大家有帮助。
感谢阅读本文
如果有什么建议,请在评论中让我知道。我很乐意改进。
猫哥 APP
flutter 学习路径
- Flutter 优秀插件推荐
- Flutter 基础篇1 - Dart 语言学习
- Flutter 基础篇2 - 快速上手
- Flutter 实战1 - Getx Woo 电商APP
- Flutter 实战2 - 上架指南 Apple Store、Google Play
- Flutter 基础篇3 - 仿微信朋友圈
- Flutter 实战3 - 腾讯即时通讯 第一篇
- Flutter 实战4 - 腾讯即时通讯 第二篇
© 猫哥 ducafecat.com
end