在使用第三方sdk或者第三方库时,经常在libs目录下,会有一些so文件。比如高德地图的3Ddemo:
就包含两个含有so文件的目录
而有的第三方不止两个目录的so文件,正常是这样子的:
有多个文件目录的。
但是:如果有的sdk只有两个关于so文件的文件夹,有的就很多。如果仅仅做简单的文件夹合并,有些文件夹下有so文件,有些文件夹下没有,会导致在lib下没有部分so文件,严重点会导致崩溃的问题。
解决方法有两种
第一种:留最少的目录。
如果A的类库有5个关于so文件的文件夹,B库有两个,则删除A中B没有的文件夹
第二种:补齐类库少的文件夹:
以上个例子,则在B中创建A有而B没有的关于so文件夹,并将armeabi目录下的so文件复制到新创建的文件夹下。由于目前多数机器是兼容armeabi的,所以这么做是可以。
补充:有的说可以只创建个armeabi-v7a也解决了这些问题。不知道什么原因?有知道麻烦告知一下。加载so文件的适配机制需要看一下源码才能清楚了。