Flutter 应用打印语句不会出现在 adb logcat
Flutter app print statements will not show up in adb logcat
我正在尝试从我的 flutter 应用程序写入 adb logcat。
我的代码如下。它只是默认的 init 项目,带有一些打印写入。
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),
),
);
}
}
安装到 USB 调试设备后,我 运行...
adb logcat
来自终端。当我执行此操作时发生了很多日志记录,但我的 flutter 应用程序没有显示任何内容。
当我改为 运行 flutter 运行 时,打印语句将显示在我 运行 所在的终端中。
为什么 adb 中没有显示任何内容 logcat?
Flutter 使用 运行 选项卡在 Android Studio(或 VSCode 中的 DEBUG CONSOLE)。这意味着 adb logcat
无法显示任何内容,因为 Flutter 不支持它。更多详情 here and here.
但是,当您 运行 安装在设备上的 apk(调试模式)时,您可以使用 flutter logs
而不是 adb logcat
来获取日志。可悲的是,有时它不起作用(测试:~30%)。
- 第一步:运行下面的推荐。
$ flutter logs
Showing <device name> logs:
- 第 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>
...
- 第 3 步:从命令行读取日志或启动新的命令提示符,然后 运行
flutter pub global run devtools
。
$ flutter pub global run devtools
Serving DevTools at http://127.0.0.1:9100
- 第 4 步:使用从命令行获取的
http://127.0.0.1:34710/<secret key>/
link 启动 DevTools。
我正在尝试从我的 flutter 应用程序写入 adb logcat。
我的代码如下。它只是默认的 init 项目,带有一些打印写入。
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),
),
);
}
}
安装到 USB 调试设备后,我 运行...
adb logcat
来自终端。当我执行此操作时发生了很多日志记录,但我的 flutter 应用程序没有显示任何内容。
当我改为 运行 flutter 运行 时,打印语句将显示在我 运行 所在的终端中。
为什么 adb 中没有显示任何内容 logcat?
Flutter 使用 运行 选项卡在 Android Studio(或 VSCode 中的 DEBUG CONSOLE)。这意味着 adb logcat
无法显示任何内容,因为 Flutter 不支持它。更多详情 here and here.
但是,当您 运行 安装在设备上的 apk(调试模式)时,您可以使用 flutter logs
而不是 adb logcat
来获取日志。可悲的是,有时它不起作用(测试:~30%)。
- 第一步:运行下面的推荐。
$ flutter logs
Showing <device name> logs:
- 第 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>
...
- 第 3 步:从命令行读取日志或启动新的命令提示符,然后 运行
flutter pub global run devtools
。
$ flutter pub global run devtools
Serving DevTools at http://127.0.0.1:9100
- 第 4 步:使用从命令行获取的
http://127.0.0.1:34710/<secret key>/
link 启动 DevTools。