1. 程式人生 > >android studio 2.2.3 匯入第三方.so,並呼叫方法(無cpp、c原始碼)

android studio 2.2.3 匯入第三方.so,並呼叫方法(無cpp、c原始碼)

        廠家只提供了.so檔案、Demo(說明文件)的情況下,沒有jar包,如何呼叫方法的總結。

        1. 建立NDK工程,把工程自帶的刪掉,留著其實也不影響。

        2. 在專案下的 app/libs 下建立 armeabi armeabi-v7a x86 三個資料夾(此處必須是三個,很多部落格和文件只說了 armeabi,但是在有的版本會報錯,這是個坑!x86 知名見意,也建立為好)。並把我們的 libxxxxxx.so 貼上到這三個目錄下。

        3. gradle 和 buildTypes 同級下 加

                SourceSets {

        main {

jniLibs.srcDirs = ['libs']

}

}

        4. 不用修改 Cmake 檔案,也不用再修改 gradle 了

5. 編譯一下沒問題繼續下面的步驟。

6. 這裡就需要看 文件 或者注意 Demo 了。仿照著我們建立的NDK的例子,把 System.loadLibrary("xxx"); 改成我們需要的,切記!:使用 jni 的類的包名,必須和封裝好的,在 .so 裡面的一樣。 看文件 以及 問提供 .so 廠家的技術,這裡錯了會報錯找不到類什麼的。

7. 完成之後就像呼叫我們自己的 jni 一樣使用了。但是方法名是紅色的,不要緊,編譯是正常的,執行測試也OK。完美~

        PS:做NDK開發一定會遇到各種各樣的坑,你也許按照我的方式下去依然會報錯,仔細看一下報錯的原因,慢慢的來一定會解決的!這是我最近做的第二個和NDK相關的經驗總結了,爬的坑多了,才知道坑都在哪裡。