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

Android JNI中C代码的printf()输出去向问题

Android JNI中printf输出的位置及查看方法

在Android平台上,Native层(C/C++)的printf输出不会直接显示在App界面,默认会被重定向到**系统日志(Logcat)**中,你可以通过以下方式查看:

  1. 使用Android Studio Logcat面板

    • 连接测试设备或启动模拟器,打开Android Studio的Logcat窗口
    • 可以通过搜索关键词Sum =快速定位输出,或者过滤日志标签DEBUG(大部分情况下printf输出会被归类到这个标签下)
  2. 使用adb命令行查看

    • 在终端执行命令:
      adb logcat | grep "Sum ="
      

    该命令会过滤出包含Sum =的日志行,直接显示你的printf输出。

更规范的Native日志方案

如果想更方便地管理Native日志,推荐使用Android提供的Native日志函数替代printf,步骤如下:

  1. 引入日志头文件并定义日志宏:
    #include <android/log.h>
    #define LOG_TAG "JNI_CALC"
    #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
    
  2. 将sum函数中的printf替换为LOGD:
    int sum(int a, int b)
    {
        int sum_val = a + b;
        LOGD("Sum = %d", sum_val);
        return sum_val;
    }
    
  3. 在Logcat中通过LOG_TAG(这里是JNI_CALC)过滤日志,能更精准地找到你的Native输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 04:10:16