Flutter 应用如何取消对某系统平台的支持

今天要从手机上拉一个 app 的安装包到电脑上,计划用曾贡献过代码的一个 Flutter 写就的工具来做。谁知在枚举手机 app 的列表界面竟然没有任何内容,显然什么地方有 bug 了。于是到命令行下先把代码更新到最新,想尝试编译一下看是否最新的版本会自动消除这一问题。不想项目的依赖发生了变化,用 flutter pub get 更新时有要求必须先 flutter upgrade 更新 SDK。

SDK 更新完毕后,flutter build windows 开始编译,它自动会先执行 flutter pub get,但依赖更新后却出来一下提示:

This app is using a deprecated version of the Android embedding.
To avoid unexpected runtime failures, or future build failures, try to migrate this app to the V2 embedding.
Take a look at the docs for migrating an app:
https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects
The plugin package_info_plus requires your app to be migrated to the Android embedding v2. Follow the steps on the
migration doc above and re-run this command.

看上去是如果 app 要运行在 Android 下的话,应该要做的一个迁移工作。然而这个项目是个桌面类型的,所以第一时间的反应是我把对 Android 平台的支持去掉不就得了嘛。于是执行了 flutter config --no-enable-android 后再次编译,提示依然;执行 flutter clean 后再次编译,提示依然!

目前还不知道可以怎么办,只好先把这个过程记录下来。


更新(2023-03-10):

看了官方的迁移说明页,以及网上很多的解决此问题的记录,感觉都跟我的情况不符。尤其是,我去 android 目录中去查看,并没有那些 Activity 啊 Manifest 啊之类的项目文件被生成。这很好理解,因为它本来就不是个 Android 项目。前文的去除对 Android 平台的支持的尝试,就是怕 flutter 在某些工程文件中记录了此平台是要支持 Android 平台的,从而触发了检查。

看来想多了,现在触发检查的并非配置,而是另有其物。看来看去,只能是项目根目录下这个名叫 android 的子目录了,动手把它删除后再执行编译构建命令,果然一马平川了。

问题终结。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注