第一步.安装ndk,配置环境变量
pico .bash_profile 注意要在根目录下
export PATH=/Users/humax/Development/Homebrew/bin:$PATH:$M2_HOME/bin:/Users/humax/Development/Homebrew/opt/android-ndk
export ANDROID_NDK=/Users/humax/Development/Homebrew/opt/android-ndk
export ANDROID_NDK
保存退出:
control+x
Y
回车
输入ndk-build,验证配置是否成功
出现上面的结果,表示配置成功,ndk-build要配合Application.mk,Android.mk使用
第二步.编写HelloNDK项目
1.创建HelloNDK项目,gradle配置NDK
ndk {
abiFilters 'armeabi-v7a'
}
2.编写Java类
3.编写对应C文件,并生成.so文件
1)Android Studio -> Build -> Make Project,生成class文件
2)利用javah 生成.h文件,注意javah 包名.类名
3)创建JNI Folder,把.h文件粘贴到里面
4)创建编写.cpp文件
env -> NewStringUTF是JNI提供的功能接口
5)编写Application.mk,Android.mk,ndk-build生成so文件
注意:
Android.mk中
LOCAL_MODULE := hellondk
LOCAL_SRC_FILES := liufeismart_com_hellondk_JNIUtil.cpp
Application.mk中
APP_ABI := armeabi-v7a
注意,在调用idk-build之前,把jni目录移动
在jni目录下,执行ndk-build
6)System.loadLibrary添加so库
注意:在gradle中添加
android {
sourceSets {
main.jniLibs.srcDirs = ['libs']
}
否则,
Process: liufeismart.com.hellondk, PID: 18436
java.lang.UnsatisfiedLinkError: Couldn't load hellondk from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/liufeismart.com.hellondk-2.apk"],nativeLibraryDirectories=[/data/app-lib/liufeismart.com.hellondk-2, /vendor/lib, /system/lib]]]: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:358)
at java.lang.System.loadLibrary(System.java:526)
7)运行项目
Demo地址:链接: https://pan.baidu.com/s/1nuLkrQp 密码: hig7
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。