我正在寻找一种在应用程序处于调试模式时在Flutter中执行代码的方法。这在Flutter中可能吗?我似乎在留档的任何地方都找不到它。
像这样的东西
If(app.inDebugMode) {
print("Print only in debug mode");
}
如何检查Flutter应用程序是否在调试或发布模式下运行?
在更高的版本中,您可以使用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的答案与kReleaseMode
和kDebugMode
一起使用,否则Dart编译将无法对您的代码进行树震动。
这个小片段应该可以满足您的需要:
bool get isInDebugMode {
bool inDebugMode = false;
assert(inDebugMode = true);
return inDebugMode;
}
如果没有,您可以将IDE配置为在调试模式下启动不同的main. dart
,您可以在其中设置布尔值。