android 調用jni庫(

        首先你得有一個庫,如果是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");
    }

第四步:

        沒了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章