首先创建项目:(我自己创建为JniDemo)创建好之后先来设置NDK~~
快捷键ctrl+alt+s或者点击File---点击Settings 到设置页面---如图下载NDK:
下载好后在点击顶部蓝色小图标进入页面:
复制路径设置环境变量: 在Path前面加上 记得用 “ ; ” 分号隔开:
回到项目中在build.gradle中设置 NDK打包so库的名称:
打开gradle.properties,添加: (android.useDeprecatedNdk=true)
有的可能还要操作这一步: 检查 local.properties 是否有NDK 的路径:
新建一个类:(我自己创建为JniUtils~~方法报红不要在意) “” 内的名称要和build.gradle 打包设置的名称一致
public class JniUtils {
static {
System.loadLibrary("JniHello");
}
public native static String GetJniString();
}
接着在As顶部菜单 Build的点击第一个Make Project,等待as编译几秒之后,点击as底部菜单的 Termianl命令行:
首先找到自己项目的debug目录:然后在执行 javah (自己的项目名以及类名) 如图:
接着可在项目查看到生成了.h文件:
接着在main文件夹下 新建jni文件夹 :(同时记得将.h文件 复制到jni文件夹中)
在.h文件中的如图 复制到 (我的是 hello.cpp)中:
JNIEXPORT jstring JNICALL Java_com_jnidemo_JniUtils_GetJniString
(JNIEnv *, jclass);
hello.cpp 文件记得添加: 手动敲打# 带出in..... 非常快了~ (#include "com_jnidemo_JniUtils.h") (自己的.h 文件名)
#include "hello.h"
#include "com_jnidemo_JniUtils.h"
JNIEXPORT jstring JNICALL Java_com_jnidemo_JniUtils_GetJniString
(JNIEnv *env, jclass){
return env->NewStringUTF("Hello");
};
之后就可以在MainActivity 用Log打印就能看到 已经成功啦!
-----------------------------------------------------------华丽的分割线------------------------------------------------------------------
现在设置打包so库~~
1.在jni目录下新建Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := JniHello
LOCAL_SRC_FILES := hello.cpp
include $(BUILD_SHARED_LIBRARY)
2.在jni目录下新建Application.mk文件
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions -std=c++0x
APP_ABI := armeabi-v7a
APP_PLATFORM := android-22
3.编译生成so (首先进入d盘----然后找到项目中jni文件夹地址复制----cd 粘贴复制的地址回车--运行命令 ndk-build ) 如图~
windows+R 进入Cmd:
编译成功~回到AS 查看: