我正在寻找一种在应用程序处于调试模式时在Flutter中执行代码的方法。在颤振有可能吗?我在文件里找不到。
就像这样
If(app.inDebugMode) {
print("Print only in debug mode");
}
如何检查Flutter应用程序是运行在调试模式还是发布模式?
我正在寻找一种在应用程序处于调试模式时在Flutter中执行代码的方法。在颤振有可能吗?我在文件里找不到。
就像这样
If(app.inDebugMode) {
print("Print only in debug mode");
}
如何检查Flutter应用程序是运行在调试模式还是发布模式?
当前回答
摘自Dart文档:
断言到底在什么时候起作用?这取决于工具和 你正在使用的框架: Flutter在调试模式下启用断言。 仅用于开发的工具(如dartdevc)通常默认启用断言。 有些工具,如dart和dart2js,通过命令行标志——enable- assertions来支持断言。 在产品代码中,断言将被忽略,而参数将被忽略 Assert没有被求值。
其他回答
不要挑剔,但是基础包包含一个kDebugMode常量。
So:
import 'package:flutter/foundation.dart' as Foundation;
if(Foundation.kDebugMode) {
print("App in debug mode");
}
这里有一个简单的解决方案:
import 'package:flutter/foundation.dart';
然后你可以使用kReleaseMode like
if(kReleaseMode){ // Is Release Mode??
print('release mode');
} else {
print('debug mode');
}
创建一个名为constants.dart的文件。把这些变量加进去:
const bool kReleaseMode = bool.fromEnvironment('dart.vm.product');
const bool kProfileMode = bool.fromEnvironment('dart.vm.profile');
const bool kDebugMode = !kReleaseMode && !kProfileMode;
printk(String string) {
if (kDebugMode) {
// ignore: avoid_print
print(string);
}
}
然后在任何其他文件中导入这个常量文件,并像这样使用它:
import 'package:package_name/constants.dart';
if(kDebugMode){
//Debug code
}else{
//Non-Debug code
}
printk("Debug Log");
k调试模式
现在可以使用kDebugMode常量了。
if (kDebugMode) {
// Code here will only be included in debug mode.
// As kDebugMode is a constant, the tree shaker
// will remove the code entirely from compiled code.
} else {
}
这比!kReleaseMode更可取,因为它也检查配置文件模式,即,kDebugMode表示不在发布模式和不在配置文件模式。
kReleaseMode
如果你只是想检查释放模式,而不是配置文件模式,你可以使用kReleaseMode代替:
if (kReleaseMode) {
// Code here will only be run in release mode.
// As kReleaseMode is a constant, the tree shaker
// will remove the code entirely from other builds.
} else {
}
kProfileMode
如果你只是想检查配置文件模式,而不是发布模式,你可以使用kProfileMode代替:
if (kProfileMode) {
// Code here will only be run in release mode.
// As kProfileMode is a constant, the tree shaker
// will remove the code entirely from other builds.
} else {
}
摘自Dart文档:
断言到底在什么时候起作用?这取决于工具和 你正在使用的框架: Flutter在调试模式下启用断言。 仅用于开发的工具(如dartdevc)通常默认启用断言。 有些工具,如dart和dart2js,通过命令行标志——enable- assertions来支持断言。 在产品代码中,断言将被忽略,而参数将被忽略 Assert没有被求值。