提问者:小点点

如何检查Flutter应用程序是否在调试中运行?


我正在寻找一种在应用程序处于调试模式时在Flutter中执行代码的方法。这在Flutter中可能吗?我似乎在留档的任何地方都找不到它。

像这样的东西

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

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


共3个答案

匿名用户

在更高的版本中,您可以使用kDebugMode

if (kDebugMode)
  doSomething();

虽然断言在技术上可用于手动创建“is调试模式”变量,但您应该避免这种情况。

相反,使用包中的常量kReleaseMode:flutter/Foundation. dart

不同之处在于摇树。

树摇动(又名编译器删除未使用的代码)取决于变量是常量。

问题是,断言我们的isInReleaseMode布尔值不是常量。因此,在发布我们的应用程序时,包括开发和发布代码。

另一方面,kReleaseMode是一个常量。因此编译器能够正确删除未使用的代码,我们可以安全地执行:

if (kReleaseMode) {

} else {
  // Will be tree-shaked on release builds.
}

匿名用户

这里有一个简单的解决方案:

import 'package:flutter/foundation.dart';

然后你可以使用kReleaseMode

if(kReleaseMode){ // Is Release Mode??
    print('release mode');
} else {
    print('debug mode');
}

匿名用户

请将Remi的答案与kReleaseModekDebugMode一起使用,否则Dart编译将无法对您的代码进行树震动。

这个小片段应该可以满足您的需要:

bool get isInDebugMode {
  bool inDebugMode = false;
  assert(inDebugMode = true);
  return inDebugMode;
}

如果没有,您可以将IDE配置为在调试模式下启动不同的main. dart,您可以在其中设置布尔值。