android jni so 生成 调用

来源:互联网 发布:js apply 编辑:程序博客网 时间:2024/06/06 12:36

新建一个 

NativeUtils.java

package cn.com.comit.jni;/** * Created by krubo on 2016/1/20. */public class NativeUtils {    static {        System.loadLibrary("NativeExample");    }    public static native String getStringFromNative();}

注意包路径  cn/com/comit/jni/NativeUtils.java


在当前路径下打开 cmd 

javac NativeUtils.java  生成 class类文件


退出 到包路径以外,生成.h文件


注意 包的名字和路径要一致 ,不然会报错误找不到文件错误。

cn_com_comit_jni_NativeUtils.h文件


/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class cn_com_comit_jni_NativeUtils */#ifndef _Included_cn_com_comit_jni_NativeUtils#define _Included_cn_com_comit_jni_NativeUtils#ifdef __cplusplusextern "C" {#endif/* * Class:     cn_com_comit_jni_NativeUtils * Method:    getStringFromNative * Signature: ()Ljava/lang/String; */JNIEXPORT jstring JNICALL Java_cn_com_comit_jni_NativeUtils_getStringFromNative  (JNIEnv *, jclass);#ifdef __cplusplus}#endif#endif

3. 打开Visual Studio创建dll工程(对c++程序员来说更熟悉 vs)

新建dll工程文件,导入上面刚生成的cn_com_comit_jni_NativeUtils.h 文件,再新建一个 cn_com_comit_jni_NativeUtils.cpp
#include "cn_com_comit_jni_NativeUtils.h"#include <iostream>JNIEXPORT void JNICALL Java_cn_com_comit_jni_NativeUtils_getStringFromNative(JNIEnv *env, jobject obj){printf("Hello Native World!\n");}
设置 include 路径 ,jdk安装目录 include



build后,会生成对应的dll 和lib文件