Allin Program

编译并运行《Flutter实战第二版》随书项目

对于国内学习Flutter的普通开发者来说,《Flutter实战·第二版》是非常棒的学习资料。

其率先更新了Flutter 3的内容,并且对书本内容进行了开源。在此推荐阅读,并且希望有能力的读者可以进行购买实体书以支持作者。

书中第十五章节中给到了一个实战项目GitMe,读者在编译运行该项目时可能会遇见一些问题,在此记录下来,节省初学者时间。

拉取依赖报错

错误1

flutter pub get
Resolving dependencies...
Because gitme depends on json_model from path which doesn't exist (could not find package json_model at "../../json_model"), version solving failed.

报错原因

在依赖管理文件pubspec.yml中有如下内容:

json_model:
  path: ../../json_model

这里对于json_model依赖使用了Path dependency的引入方式,目录是../../json_model,但是作者并没有在git仓库中上传该部分,所以无法读取到对应依赖。

解决方案

修改上述提到的pubspec.yml文件中的内容为:

json_model: ^1.0.0

错误2

flutter pub get 
Resolving dependencies... (1.2s)
Note: intl is pinned to version 0.18.1 by flutter_localizations from the flutter SDK.
See https://dart.dev/go/sdk-version-pinning for details.

Because every version of flutter_localizations from sdk depends on intl 0.18.1 and gitme depends on intl ^0.17.0, flutter_localizations from sdk is forbidden.
So, because gitme depends on flutter_localizations from sdk, 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.18.1

报错原因

这个其实很好理解,错误信息已经给了很明确的提示了。

解决方案

pubspec.yml文件中intl: ^0.17.0升级为intl: ^0.18.1

无法在windows平台运行

这个也是比较好办的,应该是作者在创建项目之初没有增加对windows平台的支持,执行以下命令即可无损增加对windows平台的支持。

flutter create --platforms=windows .

增加更多平台支持可以参考Add desktop support to an existing Flutter app