相信也有人在从事安卓开发中也有遇到过此类问题,这几天碰到了该问题,正好又弄明白了问题产生的原因,写个博客记录一下。
最近公司app中想要加入视频直播的功能,于是选用了乐视的云直播SDK(这是坑的开始,哈哈,顺带黑了一把乐视)。楼主在往自己的项目中集成乐视SDK之前,先新开了一个项目用于测试,乐视云播的功能是否可用。集成之后一切正常,看起来非常完美,离视频在线直播只有一步了,只要集成进自己项目中就可以了,想想就激动啊!!
麻烦出现了,在往自己的项目中集成乐视云播时一直提示标题所示的错误
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.aiming.weipai-2/base.apk"],nativeLibraryDirectories=[/data/app/com.aiming.weipai-2 b/arm64, endor b64, /system b64]]] couldn't find "liblecplayer.so"开始楼主一直不明白,测试项目中一切完好,同时乐视提供的demo也完全没问题啊,代码也检查好几遍了啊,就是没问题啊,为啥一运行就挂呢,这不科学。。。为啥一直提示
arme64-v8a下面找不到可用的.so文件,他就不能自动去
armeabi-v7a下找呢,测试项目中也并没有
arme64-v8a文件夹,不是照样跑起来了。
然后各种google、百度查资料之后,发现一个连接,喏,就是这个
http://www.zhihu.com/question/36893314 简单粗暴的解决了楼主心中的疑惑,直接上重点:
一切都解释的通了,由于楼主的项目有引入其他项目的.so文件,所以在
arme64-v8a文件夹是有其他.so文件存在的,这也就解释了为什么系统一直要在
arme64-v8a文件夹中查询"liblecplayer.so",而不去
armeabi-v7a文件夹。然而乐视并没有提供
arme64-v8a相对应的.so文件,兼容性不到位(又黑他一把。。。)
一般应用的libs下都有这几个文件夹
对这几个文件夹不清楚的童鞋可以参考下这个文章 http://blog.csdn.net/mao520741111/article/details/50328669