android JNI utils/Log.h 找不到

在使用Android NDK编译JNI代码时遇到问题,当包含<utils/Log.h>时提示文件找不到。解决方法包括:1) 在Android.mk文件中添加LOCAL_LDLIBS指向liblog库;2) 在源代码中将#include <utils/Log.h>替换为#include <ALog.h>,并创建ALog.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 文件内容如下:

#pragma once

#include<android/log.h>

#define LOG_TAG "debug log"
#define LOGI(fmt, args...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, fmt, ##args)
#define LOGD(fmt, args...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, fmt, ##args)
#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))


执行新的hook脚本仍然报类似错误,然后执行备用方案,即最小化安全钩子,结果还是报错: Process crashed: Bad access due to invalid address *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Build fingerprint: 'google/sdk_gphone64_x86_64/emu64xa:15/AE3A.240806.043/12960925:userdebug/dev-keys' Revision: '0' ABI: 'x86_64' Timestamp: 2025-10-22 10:24:32.029830500+0000 Process uptime: 11s Cmdline: com.hxfl.hxapp pid: 15959, tid: 15989, name: om.cn:18085/... >>> com.hxfl.hxapp <<< uid: 10213 signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0000000000000010 Cause: null pointer dereference rax 0000000000000000 rbx 000074948f104ed0 rcx 000000001429d280 rdx 0000749141278b30 r8 0000000000000000 r9 0000000000000040 r10 000000006fabcd38 r11 0000000000000007 r12 00007491423d2e48 r13 000074914127a048 r14 0000749141279f30 r15 0000749141278b30 rdi 000074934d94ba10 rsi 0000749141279f30 rbp 0000749141279f30 rsp 00007491412789e0 rip 00007491dd18fe0f 25 total frames backtrace: #00 pc 000000000098fe0f /apex/com.android.art/lib64/libart.so (artQuickGenericJniTrampoline+79) (BuildId: 62338b1c62e3991543c9b8b8bae2b361) #01 pc 000000000022b59b /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+139) (BuildId: 62338b1c62e3991543c9b8b8bae2b361) #02 pc 0000000000208a15 /apex/com.android.art/lib64/libart.so (nterp_helper+165) (BuildId: 62338b1c62e3991543c9b8b8bae2b361) #03 pc 0000000000ad6e48 /data/app/~~fAOZcC2xk59ZmH--znteuA==/com.hxfl.hxapp-Ucuju3wOtE4rgx0qkUGesw==/oat/x86_64/base.vdex (com.hxfl.core.base.net.gateway.GatewayConfigManager.encrypt+232) #04 pc 0000000000209808 /apex/com.android.art/lib64/libart.so (nterp_helper+3736) (BuildId: 62338b1c62e3991543c9b8b8bae2b361) #05 pc 0000000000ad7470 /data/app/~~fAOZcC2xk59ZmH--znteuA==/com.hxfl.hxapp-Ucuju3wOtE4rgx0qkUGesw==/oat/x86_64/base.vdex (com.hxfl.core.base.net.gateway.StandardGatewayInterceptor.oo00OoOOoo0+200) #06 pc 000000000000e963 [anon_shmem:dalvik-jit-code-cache] (offset 0x2000000) (com.hxfl.core.base.net.gateway.StandardGatewayInterceptor.intercept+1139) #07 pc 00000000000025cc [anon_shmem:dalvik-jit-code-cache] (offset 0x2000000) (okhttp3.internal.http.RealInterceptorChain.proceed+972) #08 pc 000000000000a8f5 [anon_shmem:dalvik-jit-code-cache] (offset 0x2000000) (com.hxfl.core.base.net.http.LoggingInterceptor.intercept+1541) #09 pc 00000000000025cc [anon_shmem:dalvik-jit-code-cache] (offset 0x2000000) (okhttp3.internal.http.RealInterceptorChain.proceed+972) #10 pc 000000000020a621 /apex/com.android.art/lib64/libart.so (nterp_helper+7345) (BuildId: 62338b1c62e3991543c9b8b8bae2b361) #11 pc 0000000000ad915c /data/app/~~fAOZcC2xk59ZmH--znteuA==/com.hxfl.hxapp-Ucuju3wOtE4rgx0qkUGesw==/oat/x86_64/base.vdex (com.hxfl.core.base.net.http.RequestInterceptor.intercept+224) #12 pc 00000000000025cc [anon_shmem:dalvik-jit-code-cache] (offset 0x2000000) (okhttp3.internal.http.RealInterceptorChain.proceed+972) #13 pc 000000000000cbdc [anon_shmem:dalvik-jit-code-cache] (offset 0x2000000) (okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp+1148) #14 pc 000000000020986d /apex/com.android.art/lib64/libart.so (nterp_helper+3837) (BuildId: 62338b1c62e3991543c9b8b8bae2b361) #15 pc 00000000013824ea /data/app/~~fAOZcC2xk59ZmH--znteuA==/com.hxfl.hxapp-Ucuju3wOtE4rgx0qkUGesw==/oat/x86_64/base.vdex (okhttp3.internal.connection.RealCall$AsyncCall.run+102) #16 pc 000000000028a1c1 /system/framework/x86_64/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+769) (BuildId: 68b5d9df423be4ebd4a6c38087fc90e635afb135) #17 pc 000000000028795b /system/framework/x86_64/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+59) (BuildId: 68b5d9df423be4ebd4a6c38087fc90e635afb135) #18 pc 000000000015c3ba /system/framework/x86_64/boot.oat (java.lang.Thread.run+74) (BuildId: 68b5d9df423be4ebd4a6c38087fc90e635afb135) #19 pc 0000000000212154 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+756) (BuildId: 62338b1c62e3991543c9b8b8bae2b361) #20 pc 0000000000474bf5 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+181) (BuildId: 62338b1c62e3991543c9b8b8bae2b361) #21 pc 00000000008c5cc3 /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1427) (BuildId: 62338b1c62e3991543c9b8b8bae2b361) #22 pc 00000000008c5725 /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallbackWithUffdGc(void*)+5) (BuildId: 62338b1c62e3991543c9b8b8bae2b361) #23 pc 000000000006d62a /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+58) (BuildId: eb58b4d427279994f00c0e1818477e4f) #24 pc 0000000000060348 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+56) (BuildId: eb58b4d427279994f00c0e1818477e4f) ***
最新发布
10-23
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值