首先你得有一個庫,如果是arm架構的庫,那麼就不能在win的安卓模擬器上運行,因爲你win上運行的安卓模擬器是x86架構的,這個時候你就要用你的手機或者是開發板來做debug。
第一步:
要在app下的build.gradle中添加如下代碼:
android {
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
第二步:
在app目錄下創建libs目錄,android studio3.4中創建的工程每次都默認帶有這個目錄,沒有就自己創建一個,然後在這個文件夾下創建armeabi-v7a文件夾,這個文件夾下放的.so動態庫是爲了給arm v7架構的設備用的,如果是要在x86架構的環境中調用.so動態庫,需要建立x86文件夾,然後將對應的動態庫放到x86文件夾下。
第三步:
加載動態庫:這裏要注意,看我上面的庫的名字是libnative.so但是我在加載這個庫的時候用的名字是native,這是爲啥呢?
因爲ndk編譯時會自動生成帶“lib”前綴和“.so”後綴的動態庫文件,使用System.loadLibrary這個方法加載動態庫的時候,它會自動給你加上lib和.so就是對應我們的庫名 libnative.so。如果這裏你不注意,寫的是System.loadLibrary("libnative"),那麼他去加載這個庫的時候去找的就是liblibnative.so這個庫,那麼它肯定是找不到的。
static {
System.loadLibrary("native");
}
第四步:
沒了。