Flutter 应用程序打印语句不会显示在 adb logcat 中

Sco*_*ttF 15 android adb flutter

我正在尝试从我的 flutter 应用程序写入 adb logcat。

我的代码如下。它只是默认的初始化项目,有一些打印写入。

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);



  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
        print("HELLOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO");
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    print("HELLOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO");
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.display1,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

一旦我安装到我的 USB 调试设备,我就会运行...

adb logcat
Run Code Online (Sandbox Code Playgroud)

从航站楼出发。当我执行此操作时,会发生大量日志记录,但我的 flutter 应用程序中没有显示任何内容。

当我运行flutter run时,打印语句将显示在我运行它的终端中。

为什么 adb logcat 中没有显示任何内容?

Trầ*_*Tâm 15

[Edit: This answer is outdated, check Luciano Ribas's answer for newest solution]
Run Code Online (Sandbox Code Playgroud)

Flutter使用Run选项卡在Android Studio(或VSCode中的DEBUG CONSOLE )中显示日志。这意味着无法显示任何内容,因为Flutter不支持它。更多详细信息请参见此处此处adb logcat

但是,当您运行设备上安装的 apk(调试模式)时,您可以使用flutter logs而不是获取日志。adb logcat遗憾的是,有时它不起作用(测试:~30%)。

  • 第 1 步:运行下面的命令。
$ flutter logs
Showing <device name> logs:
Run Code Online (Sandbox Code Playgroud)
  • 第 2 步:开始您的申请。
$ flutter logs
Showing <device name> logs:
I/flutter (<pid>): Observatory listening on http://127.0.0.1:34710/<secret key>/
I/flutter (<pid>): <your log>
...
Run Code Online (Sandbox Code Playgroud)
  • 步骤 3:从命令行读取日志或启动新的命令提示符并运行flutter pub global run devtools
$ flutter pub global run devtools
Serving DevTools at http://127.0.0.1:9100
Run Code Online (Sandbox Code Playgroud)
  • 步骤 4:使用http://127.0.0.1:34710/<secret key>/从命令行获取的链接来启动 DevTools。