Flutter中Android原生Kotlin代码的print()方法无法在控制台输出问题
问题原因
Android平台运行Kotlin代码时,print()/println()方法默认输出到标准输出流stdout,不会自动同步到Android Studio的日志控制台,因此无法直接查看输出内容。
解决方法
使用Android官方提供的Log类输出日志:
- 在Kotlin文件头部导入Log类:
import android.util.Log
- 替换
print()方法为Log类的对应等级输出方法,常用方法参考:
Log.v(TAG, 内容):冗余级日志Log.d(TAG, 内容):调试级日志Log.i(TAG, 内容):信息级日志Log.w(TAG, 内容):警告级日志Log.e(TAG, 内容):错误级日志
其中TAG为自定义的日志标签,用于快速过滤日志。
修改后的代码示例:
import android.util.Log class MainActivity : FlutterActivity() { private val channel = "com.example.pomo_app/mychannel" // 自定义日志标签 private val TAG = "NativeDebug" MethodChannel(flutterEngine.dartExecutor.binaryMessenger, channel) .setMethodCallHandler { call, result -> when (call.method) { "getAllRingtones" -> { Log.d(TAG, "Native code works") } } } }
注意事项
- 原生Android日志需要在Android Studio的Logcat面板查看,Flutter默认的Debug控制台仅展示Dart层的日志输出。
- 可在Logcat面板的搜索框输入自定义的TAG值,快速过滤出目标日志。
- 若未查到日志,确认Logcat面板顶部选中的设备、应用包名与当前运行的应用一致。
内容的提问来源于stack exchange,提问作者zaynOm
相关产品推荐
相关产品推荐

