听闻 Flutter 最新的版本已经将 Windows 纳为其官方正式支持的目标平台,找了个例子项目来编译一下看一眼。
Flutter 的版本是 2.10.2 稳定版。编译时报了一个错,形如 Error: Member not found: ’packageRoot’
这样。找的解决办法在这儿,按照其中所述的方法一,执行 flutter pub upgrade
后就好了。纳闷的是,我明明新装的 flutter 怎么还需要升级缓存。
编译之后的运行环节也出了一个问题,Can't load AOT data from C:\Examples\flutter_windows_11\build\windows\runner\Debug\data\app.so; no such file.
。解决方案在这儿,见 irufano 的回复。看上去像是构建过程的一个小 bug。
然后,想编译出 Android 版本来对比一下观感上的异同,又出了几个问题。第一个是说 build.gradle
里指定的 1.3.50
版本的 kotlin 编译器下载不成功,用梯子解决后又说 One or more plugins require a higher Android SDK version.
,逼得我把工程的 compileSdkVersion
从 30
提升到了 31
;再然后又是这样的错误信息,/.gradle/caches/transforms-3/02690cd4e51ccc293ebc0625df834aff/transformed/jetified-kotlinx-coroutines-core-jvm-1.5.2.jar!/M
,好在控制台输出信息中有解决方案如下,
ETA-INF/kotlinx-coroutines-core.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its
metadata is 1.5.1, expected version is 1.1.15.
123456 ┌─ Flutter Fix ───────────────────────────────────────────────────────────────────────────────────────┐│ [!] Your project requires a newer version of the Kotlin Gradle plugin. ││ Find the latest version on https://kotlinlang.org/docs/gradle.html#plugin-and-versions, then update ││ C:\Examples\flutter_windows_11\android\build.gradle: ││ ext.kotlin_version = '<latest-version>' │└─────────────────────────────────────────────────────────────────────────────────────────────────────┘
照此将 kotlin 的版本号从 1.3.50
升级到了 1.6.10
(同时还把 gradle build tools 的版本从 4.1.0
升级到了我本地已经使用过的较新版本 7.0.4
上,以及相应地把 gradle-wrapper.properties
文件中 gradle 的版本从 6.7
也改为了本地已经有缓存的 7.0.2
),然后出问题的画风就恢复成 Could not get resource
,而且不知何故,这次连梯子也救不了,只好手动下载后,放到了用户目录下的相应位置(
'https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.6.10/kotlin-compiler-embeddable-1.6.10.jar'$USER_HOME\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-compiler-embeddable\1.6.10\acf7f6fbb7ee87f4653cc6a3bc868670e1a9c541
)。
此番过后,总算顺利通过,在测试机上运行成功。实属不易。