高通8155单安卓平台 /system/core下面的log打印不出来
时间: 2023-07-30 14:08:20 浏览: 109
android log打印
在 Android 系统中,`/system/core` 目录下的代码通常都是由 C++ 编写的,而 C++ 的标准库中并没有类似于 Java 的标准日志库。因此,在 C++ 代码中打印日志需要使用 Android 系统提供的日志库,即 `logcat`。
如果您无法在 `logcat` 中看到来自 `/system/core` 目录下的代码的日志输出,可能是由于以下原因:
1. 没有正确设置日志级别。在 Android 系统中,日志分为不同的级别,包括 VERBOSE、DEBUG、INFO、WARN、ERROR 和 FATAL。如果您的代码中使用了 `ALOG` 宏来打印日志,需要确保设置了正确的日志级别。比如说,在 `DEBUG` 模式下,可以在 `Android.mk` 文件中添加以下代码来设置日志级别:
```
LOCAL_CFLAGS += -DDEBUG=1
```
然后,在代码中使用 `ALOGD` 宏来打印调试级别的日志:
```
#include <android/log.h>
#define LOG_TAG "MyCppCode"
#define ALOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
ALOGD("Hello, world!");
```
2. 没有正确设置日志标签。在打印日志时,需要指定一个标签,以便在 `logcat` 中进行过滤。如果您的代码中没有设置正确的日志标签,可能会导致无法在 `logcat` 中看到日志输出。在上面的示例中,我们使用了 `LOG_TAG` 宏来定义标签。
3. 没有正确的权限。在 Android 系统中,只有具有 `android.permission.READ_LOGS` 权限的应用程序才能读取系统日志。如果您的应用程序没有该权限,可能会导致无法看到日志输出。您可以通过在应用程序的 `AndroidManifest.xml` 文件中添加以下代码来请求该权限:
```
<uses-permission android:name="android.permission.READ_LOGS" />
```
如果您已经确保了以上三点,但仍然无法在 `logcat` 中看到日志输出,可能需要进一步排查问题,比如说检查是否存在其他的日志过滤条件,或者在代码中添加更多的调试信息来定位问题。
阅读全文