现在的位置: 首页 > 综合 > 正文

引入了支付宝极简SDK后, System.loadLibrary(“cocos2dcpp”); 的问题

2014年10月14日 ⁄ 综合 ⁄ 共 568字 ⁄ 字号 评论关闭

刚接入 支付宝极简SDK, 打 android 包的时候,有的时候应用可以正常的跑。有的时候会报 System.loadLibrary("cocos2dcpp");  找不到 cocos2dcpp 的问题。

以前碰到过一次 so 文件加载失败,那次是因为 在全局变量初始化的时候,调用了一个宏,然后这个宏是调用一个单例函数的一个方法,结果加载失败。

检查了 lib  目录下的确还是有 libcocos2dcpp.so 的,但是想不明白为什么有的时候正常,有的时候不正常。

因为在接入支付宝极简SDK时,还做了其他的开发工作,然后就被搞混了,定位问题定位了好久。

最后发现是它的SDK里面的 lib 目录下包含了 armebi-v7i 下面的库。结果正相大白,我的应用编译的时候,把 armebi-v7i 引入了进来。但是我的工程的 Application.mk 里面没有指定用 armebi-v7i 编译。而手机运行的时候,系统有个查找优先级,三星S3优先找 armebi-v7i 目录,然后再找 armebi 目录,如果找到了目录,就认为程序采用了什么架构。结果可想而知。

为什么会一会有效,一会没效。因为多个工程管理,有的工程引了极简支付宝,有的没有。有的工程编译之后才引入极简SDK,这个时候还不会出问题,所有依赖的工程全部 release 之后,再编译就把 armebi-v7i  给引入进来了。

抱歉!评论已关闭.