我正在使用__android_log_print而无法在logcat上打印日志消息

时间:2014-02-07 06:16:13

标签: java android

这是.cpp文件,代码是

JNIEXPORT jint JNICALL Java_com_example_compute_MainActivity_AddNumbers(JNIEnv *env, jobject obj, jint v1, jint v2)
{
_android_log_print(ANDROID_LOG_VERBOSE, "VaxVoIP", "The value of 1 + 1 is %d", 1+1);

         return -1;

    //return (v1 + v2);
}

这是Android.mk文件

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

这里我们提供模块名称和源文件

LOCAL_MODULE    := add
LOCAL_LDLIBS := -llog
LOCAL_SRC_FILES := add.cpp\
                   add.h\

include $(BUILD_SHARED_LIBRARY)

我正在尝试解决的另一个错误是制作.so文件

_android_log_print(ANDROID_LOG_VERBOSE, "VaxVoIP", "The value of 1 + 1 is %d", 1+1);
was not declared in this scope

4 个答案:

答案 0 :(得分:1)

约翰是对的。我刚刚通过加入#include <android/log.h>并在android.mk文件中添加 LOCAL_LDLIBS + = -llog -ldl -landroid 来解决问题

答案 1 :(得分:0)

如果那是整个.cpp文件,那么你需要#include定义_android_log_print的东西。

答案 2 :(得分:0)

别忘了包含

#include <android/log.h>

答案 3 :(得分:0)

这可能是因为缓冲区。将\n放在字符串的末尾。

__android_log_print(ANDROID_LOG_VERBOSE, "VaxVoIP", "The value of 1 + 1 is %d\n", 1+1);

另外,不要忘记使用双下划线而不是单个下划线。