定製開源庫很多時候只是代碼的開源,這次的要求是把jar包和.so文件都放到庫裡,中間的過程還是有點曲折的。
首先我找到的是:
優雅的發佈Android開源庫(論JitPack的優越性)
本來我是按照這個的順序來的,但是在第三步的時候就卡住了:
第 3 步: 給你的項目添加配置(重點)
但是
apply plugin: 'com.github.dcendents.android-maven'
group='com.github.YourUsername' 根本就編譯不過去
1
2
3
毫無頭緒的時候求助百度,發現大家好像都沒有這個步驟,那就不管他了,刪除繼續。最後流程走下來發現好像沒什麼問題(⊙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
1
但是我明明沒有額外的.so啊,這是怎麼回事。。。(⊙o⊙)…
packagingOptions {
exclude 'lib/armeabi-v7a/******.so'
}
1
2
3
這樣就可以了嗎?
哎呦,編譯過去了,那安裝一下。。。(⊙o⊙)…
直接崩了,告訴我說找不到.so,怎麼辦?
好吧,最後問題還是解決了,答案是這樣的:
packagingOptions {
pickFirst 'lib/armeabi-v7a/******.so'
}
1
2
3
到此為止吧。
![定製開源庫之jar包和.so的引用](http://p2.ttnews.xyz/loading.gif)
閱讀更多 程序員小新人學習 的文章