項目管理遷移到gradle已經(jīng)用了大半年了,對so文件的添加了解的還不清楚,直到今天經(jīng)過各種試驗,總算是得出一些心得。
因為項目需要集成喜馬拉雅的SDK,他們提供了播放器的so庫,按照他們的官方文檔一步一步去集成,包括參考他們SDK DEMO的例子,嘗試了快一天,一直報錯,報錯的原因是找不到so文件,我添加so的方法如下:
1.在project/src/main/目錄下建立jniLibs

2.復(fù)制SDK提供的armeabi文件夾放到j(luò)niLibs下,build.gradle文件無需修改。
3.編譯運行,無法成功。
經(jīng)過多次嘗試,我又嘗試著自己在jniLibs下建了另外一個文件夾armeabi-v7a,然后把armeabi文件下的兩個so文件復(fù)制到此目錄下:

編譯成功,運行也成功,播放器能正常播放了。
armeabi跟armeabi-v7a目錄下的兩個so文件是一樣的,但是不知道為什么加了armeabi-v7a這個目錄就好了。
確認(rèn)so文件是否打包到apk了可以用adb 查看/data/app/com.xxx.xxx/lib/arm(需要root權(quán)限)下是否生成了.so文件,比如上面編譯成功后,會在此目錄下生成相應(yīng)的so文件

之前用高德地圖的時候也碰到過這個問題,so無法打包到apk,高德的SDK也只是提供了armeabi,遇到這種情況,我們可以自己建立一個armeabi-v7a的目錄去解決問題。