先去下載NDK
下載過程非常長,現在完后,你的NDK路徑在這里
然后就需要去配置環境變量:
然后去Path里面配置上這個
然后去黑窗口輸入ndk-build:
然后打開你的Studio開始創工程
點加號創建
方便粘貼內容給出:
$JDKPath$\bin\javah.exe -classpath . -jni -d $ModuleFileDir$/src/main/jni $FileClass$ $ModuleFileDir$\src\main\java
再點+號
E:\androidstudio\studiosdk\ndk-bundle\ndk-build.cmd//自己去自己的NDK下面找這個文件去,誤粘 $ModuleFileDir$\src\main\ //不管自動出來什么刪掉,粘這個,本人被坑了一天,百度都沒看董
創建一個類Utils2:
public class Utils2 { public native int chengfa(int a,int b); }
然后點擊:
然后再往類里面加上
就在剛寫的類里面加
static { System.loadLibrary("MySo"); }
然后換成Project的文檔查看方式在main下就能看到你有了一個jni文件里面多了一個h文件如果沒有,先不要往下進行了,勝敗乃兵家常事大俠請重新來過。
如果出來了那么久接着走
點擊下拉創建一個c文件
然后寫代碼:
#include<stdio.h> #include<jni.h> #include<stdlib.h> #include "rise_lung_sow_dra_ceshindk_Utils2.h"//寫你自己生成的h文件的文件名 JNIEXPORT jint JNICALL Java_rise_lung_sow_dra_ceshindk_Utils2_chengfa//從h文件里將你的方法粘過來,然后去掉“;”寫成大括號,自己把參數名加上然后大括號里面寫代碼 (JNIEnv *env, jobject thisz, jint a, jint b){ return a*b; }
然后創建Android.mk文件還是jni文件下創建file
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := MySo//這里寫你上面后加到類里面的代碼里的名字,不懂的看圖 LOCAL_SRC_FILES := test2.c//這個寫c文件的名字 include $(BUILD_SHARED_LIBRARY)
然后右擊你的c文件
然后控制台會提示你生成的文件,生成完之后是這樣
然后在你的main下創建jniLibs文件把你lib里面的文件全部復制一份粘到里面,然后把生成的lib刪掉
然后打開appbuild將下面的代碼粘到android下
sourceSets.main { jniLibs.srcDir 'libs' jni.srcDirs = [] }
然后在MainActivity里面調用:
Utils2 utils2 = new Utils2(); int chengfa = utils2.chengfa(3, 5); Toast.makeText(MainActivity.this,"乘法:"+chengfa,Toast.LENGTH_LONG).show();
然后點擊運行。本人請測。