問題描述
最近做項目出了一個bug項目中用到so文件,在5.0以上的手機上會報一個初始化異常錯誤,並提示找不到so文件。lib裏目錄結構類似如下
在Android5以下都沒有問題,在5.0以上會報錯,並提示找不到second.so文件。
解決方法
移除armeabi-v7a文件夾或者保證armeabi-v7a和armeabi兩個文件夾下的so文件一致,即數量和名稱都一樣。
問題原因
原因是在stackoverflow找到的,大致意思如下:Android中的so文件都是在Android APP安裝的的時候複製到data/data/包名 下邊的。Android 5以前的Android系統會先後查看armeabi-v7a和armeabi文件夾下的so文件,取其並集放置到APP目錄下,而Android5以後的系統會先檢查armeabi-v7a文件夾,如果有so文件,就只會把armeabi-v7a目錄下的so文件拷貝懂啊APP目錄下,如果armeabi-v7a文件夾下沒有so文件,則會拷貝armeabi中的so文件。