在android2.2版本上,自己写了一个模块,用jni去掉C程序,但是C代码里有用到LOGI,编译的时候报错,说undefined reference to `__android_log_print'  ,我试着在Android.mk里加入LOCAL_LDLIBS := -llog也不行,有人知道怎么回事吗

解决方案 »

  1.   

    .mk中增加
    LOCAL_LDLIBS    := -lm -llog 
    宏定义
    #define  LOG_TAG    "libplasma"
    #define  LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)还要加
    #include <android/log.h>
      

  2.   

    LOCAL_SHARED_LIBRARIES += \
    libcutils libutils??
      

  3.   

    LOCAL_LDLIBS += -llog即可。如果还不可以, 看看是否是因为c c++代码混用造成的原则上这个问题不会出现的
      

  4.   

    少个头文件#include <android/log.h>
      

  5.   

    #include <cutils/log.h>Android.mk:
    LOCAL_SHARED_LIBRARIES := liblog libcutils
      

  6.   

    我是在so库里面调用其它的so的库,我可以在LogCat里面打Log么?
      

  7.   

    注意android.mak 里有一行include $(CLEAR_VARS)
    必须把LOCAL_LDLIBS :=-llog放在它后面才有用,否则相当于没写
      

  8.   

    我的也是这个错误 添加LOCAL_LDLIBS := -lm -llog 就好了 
      

  9.   

    楼主这段LOCAL_LDLIBS := -llog 代码 是否放置到include$(BUILD_SHARED_LIBRARY)这段的后面去了。我就是放置到后面去了。导致报此种错误。。
      

  10.   

    源码重编译如 7# 所说的就ok,外部ndk 如 1#
      

  11.   

    注意android.mak 里有一行include $(CLEAR_VARS)
    必须把LOCAL_LDLIBS :=-llog放在它后面才有用,否则相当于没写
    按12楼写的修改后成功
      

  12.   


    正解 !!!!!LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)TARGET_PLATFORM := android-3
    LOCAL_MODULE    := serial_port
    LOCAL_SRC_FILES := SerialPort.c
    LOCAL_LDLIBS    := -llogLOCAL_MODULE_TAGS := optional
    LOCAL_SHARED_LIBRARIES := liblog libcutils
    LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
    include $(BUILD_SHARED_LIBRARY)