android 调用jni 并打印log

1.创建native方法

public final static native int startservice();

2.选择项目右击Android tools->Add native  support  就会生成jni文件 如图



3.cd user/alarmTest/bin/命令进入到项目的classes 执行 javah com.li.JNI 包名.类名 可以生成com_yfz_JNI.h文件 然后把com_yfz_JNI.h文件拷贝到jni文件下如图


4修改android.mk文件

LOCAL_PATH := $(call my-dir)


include $(CLEAR_VARS)


LOCAL_MODULE    := Test    这个是生成库文件的名字

LOCAL_SRC_FILES := com_li_JNI.cpp     注意这里默认是生成的项目名.cpp这里我们需要改成 包名_类名.cpp 因为生成的里面没有代码所以可以用.h文件的
 

LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog   这一条就是我们要用的android log信息打印的库文件 


include $(BUILD_SHARED_LIBRARY)

5.修改com.li.JNI.cpp

引入二个需要用到的文件相当于java import

#include <jni.h>

#include <android/log.h>

然后在.cpp里面加入因为.h文件里面已经生成了接口在cpp里面要去实现{

__android_log_print(ANDROID_LOG_ERROR, "test-jni", "%s", "error");

//ANDROID_LOG_ERROR 这是android 里面的log级别 这里是error

//test-jni 是android里面的 tag

// "%s" 表示输入的是字符串

//error 是我们打印的内容


}

6.点击project->build project就可以生成so库文件了

7.加载库文件System.loadLibrary("Test");

8.调用jni方法 JNI.startservice();

9.下面就是我们从android 调用所显示的



ok 今天就到这里了!!大家有什么问题可以留言 大家一起学习!!


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。