几天几夜,终解移动MM计费SDK接入bug

  笔者在接入移动MM计费SDK的时候遇到了一个很严重的问题。

  问题是这样的,移动MM提供的SDK包含jar和一堆so文件,按照说明文档,只需要将jar和so文件拷入libs下对应的文件夹即可。但笔者是Cocos2dx项目,Cocos2dx是C++和java混编移植的,也就是需要用到JNI,需要在jni目录下编写Android.mk文件。

  一般在Android.mk引入第三方so的写法如下:

b9e00084bec7202c4e9  的确一般这样写就可以让Eclipse将so拷贝到libs目录。

  可是实际测试结果是,那些so文件被Eclipse拷贝过去后竟然都变成了1kb,实际执行app的时候自然会报错,提示找不到so。

 笔者由于不熟悉jni的原理,反复修改检查so文件,甚至新建一个空项目去测试so,结果是,只要编译,那些so都会变成1kb。

  分析一下可以猜出,是因为Eclipse重新编译了so,而我们不需要编译,只需要它拷贝就行了。

  笔者查遍百度也没得到解决办法,可恶的JNI硬是要给我重新编译so,编译成1kb...

  笔者困扰了几天几夜,不吹牛,差点就放弃这个项目了。

ba200079775bf224379

  编译so吧,第三方so报错,不编译so吧,cocos2dx本身的so又没了。

  苦恼,纠结,可能部分朋友不知道我在说什么,但是实用第三方sdk拷贝so文件的同学很可能会遇到同样的问题。

  最终,笔者想起了一个脑残的办法。

  既然cocos2dx要生成so,其他so不需要编译,那么能不能先生成cocos2dx的so,然后一起拷贝呢?

  可以。

  首先,Android.mk里不要写那些第三方so,直接编译cocos2dx的so

  编译完成后,在项目设置中的builder中,去掉所有CDT、自定义builder,也就是不在进行混编。

bda0000eb23f62c2e63

  然后把你刚刚生成的so和第三方so,直接复制到libs目录,这样Eclipse就不会再去管jni,再次编译,ok!大功告成!

  哈哈,方法是脑残了一点,每次修改cocos2dx内容都要重复一遍,但是这样确实解决了困扰了笔者几天几夜的bug。

  笔者愚钝,不知其中原理,只是弄出了这么个笨办法解决了问题,希望能给遇到相同问题的同学一些帮助。

  哎,有时候独立开发,确实得用一些笨办法。

  何乐而不为呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值