1. 程式人生 > >定製開源庫之jar包和.so的引用

定製開源庫之jar包和.so的引用

定製開源庫很多時候只是程式碼的開源,這次的要求是把jar包和.so檔案都放到庫裡,中間的過程還是有點曲折的。 首先我找到的是: 優雅的釋出Android開源庫(論JitPack的優越性) 本來我是按照這個的順序來的,但是在第三步的時候就卡住了: 第 3 步: 給你的專案新增配置(重點) 在這裡插入圖片描述 但是

 apply plugin: 'com.github.dcendents.android-maven'  

 group='com.github.YourUsername'  根本就編譯不過去

毫無頭緒的時候求助百度,發現大家好像都沒有這個步驟,那就不管他了,刪除繼續。最後流程走下來發現好像沒什麼問題(⊙o⊙)…

2、jar包和.so怎麼辦

jar包這個沒什麼問題,放到library的libs資料夾下,正常使用就可以了。 但是在.so的時候我遇到了問題,正常情況下,我們使用.so的時候都是新建一個jniLibs資料夾,然後按照分類放到它該有的資料夾裡面,我也是這麼來的,但是當我在gradle裡引用的時候,我發現好像不可以啊,直接就是找不到。那我怎麼能讓它找到呢? 我們知道你的引入是編譯到你的專案裡的,在studio裡是可以看到的: 在這裡插入圖片描述 你的程式碼和你引入的jar包在這裡可以看到,但是.so的檔案在這裡是看不到的,那就很奇怪了。暫時還不懂,有懂的麻煩說一下

那怎麼辦? 瞎貓碰死耗子吧。。。 最後還真讓我碰上了。 我們知道,對.so的引入還有一種方法,那就是放到libs資料夾下,然後就成功了。。。(⊙o⊙)… 沒有一點點防備,還以為是錯覺。 新建個專案,在gradle中引入,然後。。。當然沒問題啊!!! 當我滿心歡喜的要用到專案中的時候,竟然報錯了:

More than one file was found with  lib/armeabi-v7a/******.so

但是我明明沒有額外的.so啊,這是怎麼回事。。。(⊙o⊙)… 萬能的百度果然沒有讓我失望:

 packagingOptions {
        exclude 'lib/armeabi-v7a/******.so'
    }

這樣就可以了嗎? 哎呦,編譯過去了,那安裝一下。。。(⊙o⊙)… 直接崩了,告訴我說找不到.so,怎麼辦? 好吧,最後問題還是解決了,答案是這樣的:

packagingOptions {
        pickFirst 'lib/armeabi-v7a/******.so'
    }

到此為止吧。