Flutter 2.2.3编译报错:找不到SystemChrome.setEnabledSystemUIMode方法
报错原因
你当前使用的Flutter稳定版为2.2.3,SystemChrome.setEnabledSystemUIMode方法是Flutter 2.5.0版本才正式并入稳定通道的API,低于该版本的Flutter SDK不存在这个方法,因此编译时会抛出方法找不到的错误。你本地Android Studio缺失绑定Java版本的问题和本次报错无关,无需额外处理。
可行解决方案
- 方案1:升级Flutter SDK(最推荐)
执行以下命令切换到稳定通道并升级到最新稳定版即可,升级完成后重新编译项目就不会再报该错误:flutter channel stable flutter upgrade - 方案2:替换为旧版本兼容API(无需升级SDK)
如果你暂时不打算升级Flutter版本,可以把代码中所有SystemChrome.setEnabledSystemUIMode调用替换为旧版本支持的SystemChrome.setEnabledSystemUIOverlays方法:
原来的SystemUiMode.leanBack对应隐藏所有系统栏的逻辑,替换写法如下:// 隐藏所有系统栏(对应原leanBack模式) SystemChrome.setEnabledSystemUIOverlays([]); // 需要恢复系统栏时调用 SystemChrome.setEnabledSystemUIOverlays(SystemUiOverlay.values); - 方案3:多版本兼容适配
如果你需要让代码同时兼容高低版本的Flutter SDK,可以增加版本条件判断,避免不同环境编译报错:import 'package:flutter/services.dart'; void setFullScreenMode() { // Flutter 2.5.0对应Dart版本为2.14.0,以此为分界判断 if (double.parse(dart.version.split('.').take(2).join('.')) >= 2.14) { SystemChrome.setEnabledSystemUIMode(SystemUiMode.leanBack, overlays: const []); } else { SystemChrome.setEnabledSystemUIOverlays([]); } }
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

