android JNI utils/Log.h 找不到

从网上下载的 Android Jni代码中使用到Android Log输出,


在JNI的c文件中如果用到了#include <utils/Log.h> 

然后用NDK 编译, ndk-build clean && ndk-build 提示error: utils/Log.h: No such file or directory

如果只是用到LOG功能

1 修改Android.mk文件配置,添加如下语句

LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog

2  在.c文件中修改为如下语句

//#include <utils/Log.h>//  关闭此行

#include<ALog.h>//增加些行

3  ALog.h 文件内容如下:

[cpp]  view plain copy
  1. #pragma once  
  2.   
  3. #include<android/log.h>  
  4.   
  5. #define LOG_TAG "debug log"  
  6. #define LOGI(fmt, args...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, fmt, ##args)  
  7. #define LOGD(fmt, args...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, fmt, ##args)  
  8. #define LOGE(fmt, args...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, fmt, ##args)  

4----可以使用Log输出信息,同Java层的 Log.i

LOGI("jni android log!!!!")

LOGD("the string is: %s \n", strMsg);

LOGE(strerror(errno))

在开发Android应用时,遇到 "fatal error: android/log.h: No such file or directory" 这个错误通常是因为编译环境缺少Android的NDK开发包,或者没有正确设置环境变量。Android NDK是Android平台上的本地开发工具包,它允许开发者使用C或C++语言来编写应用的本地部分。解决这个问题可以按照以下步骤进行: 1. 安装Android NDK: 确保你已经安装了Android NDK。如果还没有安装,可以从Android官方网站下载并安装最新版本的NDK。 2. 配置环境变量: 确保NDK的路径已经添加到系统的环境变量中。你可以在你的shell配置文件(例如`.bashrc`或`.zshrc`)中添加如下行来设置环境变量(路径根据你安装的NDK版本和位置进行相应修改): ``` export ANDROID_NDK_HOME=/path/to/your/ndk export PATH=$PATH:$ANDROID_NDK_HOME ``` 3. 在CMakeLists.txt中引入头文件: 如果你是使用CMake来构建你的项目,确保在CMakeLists.txt文件中使用`find_package(Java REQUIRED)`和`find_package(Threads REQUIRED)`等命令来确保所有的依赖项都被正确到。此外,你还需要确保包含Android日志头文件的路径被正确指定,例如: ```cmake include_directories( ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROIDabis}/include ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROIDabis}/include/android ) ``` 4. 更新项目的gradle配置: 确保你的项目的build.gradle文件中有如下配置来指定使用NDK: ```gradle android { ... defaultConfig { ... externalNativeBuild { cmake { cppFlags "" } } } externalNativeBuild { cmake { path "CMakeLists.txt" } } } ``` 5. 清理并重新构建项目: 在Android Studio中,你可以通过Build > Clean Project和Build > Rebuild Project来清理和重新构建项目,或者在命令行中使用`./gradlew clean`和`./gradlew build`命令。 按照以上步骤操作后,应该可以解决这个编译错误。如果问题依旧存在,检查NDK版本是否与项目的NDK版本要求相匹配,或者尝试重新配置NDK。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值