1.現在android studio2.2版本已經集成了NDK開發包,可直接在裏面進行下載
它會默認下載到當前sdk路徑下,D:\sdk\ndk-bundle,將此路徑配置到環境變量中,通過ndk-build命令測試是否配置成功。
2.在項目中聲明一個本地方法,在Terminal窗口中進入到當前java目錄中執行命令 javah -jni 包名.類名 如果提示找不到類文件,可加上-classpath。
會生成一個.h文件。
3.在main目錄下新建jni文件夾,把.h文件放入該文件夾中,並新建.c文件,實現在項目中的本地方法。
4.在jni文件夾下新建Android.mk文件,,在Terminal窗口中進入jni文件夾下,執行命令ndk-build,最後會生成.so庫。
5.在local.properties中加上ndk的目錄和在build.gradle中的defaultConfig加入ndk{moduleName "firstJni"}
6.調用:
static { System.loadLibrary("firstJni"); }
注意:1.如果在聲明本地方法時出現 cannot resolve corresponding jni function 錯誤,在setting中的plugins,把Android NDK Support 對勾取消。
2.Java.lang.UnsatisfiedLinkError: Couldn’t load xxx from loader dalvik.system.PathClassLoader。
原因:android studio導入so文件沒有編譯到apk裏面去,打開build.gradle,在android的標籤下加入如下代碼:
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
3.Error:Execution failed for task ':app:compileDebugNdk'.
> Error: Your project contains C++ files but it is not using a supported native build system.
在gradle.properties中加入android.useDeprecatedNdk=true代碼。