You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Delphi调用__android_log_write无Android日志输出问题求助

Delphi Android 日志无输出排查方案

1. 日志过滤规则错误

  • 检查日志查看工具的过滤条件:
    • 确认标签(TAG)是你代码里写的TAG,不要误写为其他字符
    • 日志级别需选择Debug或更低等级(如Verbose),因为你调用的是ANDROID_LOG_DEBUG,若过滤级别设为Info及以上会直接屏蔽Debug级日志

2. 字符串编码不兼容

Delphi默认字符串为Unicode编码,而__android_log_write要求传入UTF-8格式的C风格字符串,直接传递Delphi字符串会导致编码异常。可以通过编码转换解决:

__android_log_write(ANDROID_LOG_DEBUG, PAnsiChar(UTF8Encode('TAG')), PAnsiChar(UTF8Encode('TimerWifi')));

更简便的方式是使用Androidapi.Log中封装好的日志函数,它已自动处理编码转换:

Log.d('TAG', 'TimerWifi');

3. 调试连接异常

  • 执行adb devices命令,确认设备/模拟器与电脑的ADB连接正常
  • 若连接不稳定,重启ADB服务:先执行adb kill-server,再执行adb start-server
  • 可通过进程ID精准过滤日志,避免混杂其他进程输出:adb logcat --pid=<你的APP进程ID>

4. 编译配置限制

  • 确认当前编译模式为Debug,Release模式下的编译优化可能会移除日志输出逻辑
  • 检查Delphi版本是否存在Android日志相关的已知bug,必要时升级到较新版本

5. 定制ROM权限限制

部分定制Android ROM会限制普通应用的日志输出,可尝试在AndroidManifest.xml中添加日志相关权限(多数场景下不需要,但可作为排查手段):

<uses-permission android:name="android.permission.WRITE_LOGS" />

内容的提问来源于stack exchange,提问作者Harvey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 08:52:04