首页 > 代码库 > .so文件的平台相关性

.so文件的平台相关性

.so文件的平台相关性

这个问题比较简单,但是由于当时自己并不清楚有这种区分导致自己花了不少时间进行测试,修改;徒花了很多时间做无用功,写出来给自己勉励。


在使用百度地图sdk的时候一共有两个库文件jar包和一个c++的.so文件

技术分享

在我自己的一个demo工程中这样写没有问题,直接得到了我要的地图gps信息,然后我将这个demo的功能放到工程中的时候就出现了问题,而且浪费了我很长时间才得以解决

技术分享

在这个工程中,使用.so文件有四个文件包,armeabi、armeabi-v7a、mips、x86;当然大家肯定是知道这几个文件的区别了;但是同上demo中的配置相同,却不能正常使用该.so文件——libocSDK4d.so,并且不报任何错误,原先以为是源程序的问题,测试过后发现是.so文件的路径问题;在demo中因为只给出了armeabi文件夹,并在该文件夹中给出了该.so文件,因此可以直接使用;而在工程中因为有代表四个不同平台的文件夹,这时候就必须得在四个文件夹中都放置该.so文件,或者在自己机型使用的平台的.so文件中,这样就可以正常使用.so文件了;这很类似于layout的适配;但是又有很大的不同,知道这个问题的所在,以后写的时候会更加注意这个问题了

正确的放置位置:

技术分享

.so文件的平台相关性