Flutter 仅在调试模式下导入库

Flutter only import library in debug mode

我正在使用 Android 11 无线调试来开发我的应用程序。每当设备自动锁定自身时,需要一段时间重新建立连接以进行热重载。

为了克服这个问题,我使用 wakelock,只有当我的应用程序处于调试模式而不是发布模式时我才需要使用它。

lib/main.dart中我有以下代码:

import 'package:flutter/foundation.dart' as Foundation;
import 'package:wakelock/wakelock.dart';

...

void main() {
  if (Foundation.kDebugMode) {
    Wakelock.enable();
  }
  runApp(App());
}

如您所见,仅当应用 运行 处于调试模式时才使用 wakelock 包。

如果应用 运行 处于调试模式,有没有办法只导入 wakelock

测试为

pubspec.yaml

dev_dependencies:
  wakelock: ^0.2.1+1

用法

import 'package:flutter/foundation.dart';
import 'package:wakelock/wakelock.dart';
import 'package:flutter/material.dart';

main() async {
  WidgetsFlutterBinding.ensureInitialized();

  if (kDebugMode) {
    print('activating wakelock in debug');
    Wakelock.enable();
  }

  runApp(App());
}

旁注:

如果您只需要设备在一段时间后停止自行锁定,那么请尝试在设备本身的 Display 设置下增加睡眠延迟,或者使用开发者选项中名为 [=14= 的设置] 让设备在充电时永远保持开机状态。