我有一个简短的问题.我正在寻找一种方法,以执行代码在Flutter 时,应用程序是在调试模式.在"Flutter 翼"中可以这样做吗?我似乎在文档里的任何地方都找不到它.

像这样的

If(app.inDebugMode) {
   print("Print only in debug mode");
}

如何判断Flutter 应用程序是否在调试或发布模式下运行?

推荐答案


虽然这是可行的,但最好使用常量kReleaseModekDebugMode.有关完整的解释,请参见下面的Rémi's answer,这可能是公认的问题.


最简单的方法是使用assert,因为它只在调试模式下运行.

下面是一个来自Flatter的Navigator源代码的示例:

assert(() {
  if (navigator == null && !nullOk) {
    throw new FlutterError(
      'Navigator operation requested with a context that does not include a Navigator.\n'
      'The context used to push or pop routes from the Navigator must be that of a '
      'widget that is a descendant of a Navigator widget.'
    );
  }
  return true;
}());

特别要注意的是,call-assert末尾的()只能对布尔值进行操作,因此仅仅传入函数是不起作用的.

Flutter相关问答推荐

如何在Flutter 中播放音频

CMakeLists.txt处的CMake错误:3(项目)找不到指定的Visual Studio实例

Android上火焰瓷砖之间的线条飘动

与FTPS连接时出现Flutter FTPConnect HandshakeException错误

在Flutter 小部件测试中找不到框中的AssetImage装饰

顶部对齐ListTile的[前导、标题、尾随]小部件

按一下按钮即可更新 fl_chart

当 Dart SDK 版本范围不匹配时,为什么依赖解析器不会抛出错误?

打开键盘时屏幕组件会被压扁

将自定义容器附加到屏幕底部

如何在 VS Code 中启用 Flutter 运行/调试工具栏?

如何从flutter连接PostgreSQL数据库?

我无法找到修复此错误的位置,指出无法使用静态访问来访问实例成员

来自服务器的数据未分配给变量

如何(部分)更新 riverpod 中的 AsyncValue?

如何让小部件根据小部件的大小构建不同的布局?

Cloud firestore:如何使用 map 对象创建和更新嵌套数组

如何在Flutter 中水平滚动堆叠定位的小部件?

如何在没有上下文的情况下使用国际Flutter ?

我们什么时候在flutter中初始化一个provider?