1、首先配置as环境, 还需要在path中配置一下ndk-build环境变量
2.新建一个
package com.example.myjnidemo2; /** * Created by Administrator on 2017/6/22. */ public class jnitest { static{ System.loadLibrary("JniTest");//jni模块加载名称 } public static native String getJniString();//调用c文件的方法 } 3、重新Rebulid Project去生成 .h 文件 生成步骤如下: terminal中执行以下 命令 4.生成的 .h文件 在debug目录下
5.新建 jni文件夹 将.h文件copy进去 并新建 c文件
#include <string.h> #include <jni.h> #include "com_example_myjnidemo2_jnitest.h" JNIEXPORT jstring JNICALL Java_com_example_myjnidemo2_jnitest_getJniString(JNIEnv *env, jobject _this){ return (*env)->NewStringUTF(env, "hellow c"); }
新建Android.mk文件 内容
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := JniTest 需要一致 System.loadLibrary("JniTest");//jni模块加载名称 LOCAL_SRC_FILES := hello.c c文件名称 hello.c 注意 如果是 .cpp 后面就是 hello.cpp include $(BUILD_SHARED_LIBRARY)gradle.properties 中添加 横行标注内容
6.执行 nkd-build命令
进入jni文件夹 执行 ndk-build命令
如果是输出 就说明 .so文件生成成功
接下来就可以删除 jni文件夹 引用.so文件了
sourceSets.main { jni.srcDirs = [] jniLibs.srcDir 'src/main/libs' }
如遇其他bug 找度娘
http://blog.csdn.net/why7788521521/article/details/51537207
http://blog.csdn.net/qq_33689414/article/details/50754563