Java 我正在使用安卓系统日志打印,无法在logcat上打印日志消息

Java 我正在使用安卓系统日志打印,无法在logcat上打印日志消息,java,android,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

这是.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);
}
LOCAL_MODULE    := add
LOCAL_LDLIBS := -llog
LOCAL_SRC_FILES := add.cpp\
                   add.h\

include $(BUILD_SHARED_LIBRARY)
这是Android.mk文件

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
这里我们给出了模块名称和源文件。

我试图解决的另一个错误是在生成.so文件时

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

如果这是整个.cpp文件,您需要包含一些定义android日志打印的内容。

John说得对。我刚刚通过在android.mk文件中包括
#include
并添加本地的LDLIBS+=-llog-ldl-landroid解决了这个问题

#include <android/log.h>
#包括

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

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

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

是否可以打印jstring?文档特别指出,“android日志打印”处理此问题:“请注意,如果日志消息中没有换行符(“\n”),则会自动添加到日志消息中。”