Android NDK知道源碼的情況下,重新生成so庫,及多jar包類名相同情況的解決

重新生成so庫,主要是谷歌的串口庫,爲了避免多串口多廠家衝突,打jar包必須改名:

參考:https://blog.csdn.net/oYuDaBaJiao/article/details/80525700?utm_source=blogxgwz9

但是,上述鏈接的C函數名沒有改,運行報錯的那個名字覆蓋掉之前的JAVA_XXXXXX_open即可,還有close的。

JNI純手寫也要記得改名,要一一對應。

 

jar包類名衝突:

maven下的有個命令,在gradle中把衝突包排外就行,如下:

本地jar包把衝突的刪除掉就可以了。如下例是okhttp和okio衝突,刪掉兩個jar包之一的a包和okhttp3包即可。在android studio中是不能直接刪的,但是jar包本身就是一種壓縮格式,所以,是可以用winrar打開的。

winrar打開後,直接刪除掉衝突包就可以了。

android studio重新gradle、run,就沒有問題了。

 

 

如果還報錯:(出現在module和jar包引入了同一包)

> More than one file was found with OS independent path 'META-INFXXX'

在gradle中添加:

packagingOptions {

    exclude 'META-INF/proguard/okhttp3.pro'

}

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