cocos2dx使用第三方.so库,并且.so库生成到libs/armeabi下面


最近cocos2dx移植到android的项目需要使用第三方.so库,cocos2dx-android本身有  libgame.so ,网上查了资料,把实现方法写下来,方便以后回忆


在调用移动mm的时候,需要调用移动mm 的.so文件,就将方法记录下来吧。


我就将使用移动MM 的两个.so库来写例子,大家如果写一个或多个,以此类推。

在cocos2dx-android项目/jni  下新建一个文件夹,就取名为prebuilt,在该文件夹内,放入第三方.so

如图所示:



在 jni/Android.mk 原有的内容基础上, 在最上面

include $(CLEAR_VARS)

后写入一下代码:


include $(CLEAR_VARS)

LOCAL_MODULE := identifyapp

LOCAL_SRC_FILES := prebuilt/$(TARGET_ARCH_ABI)/libidentifyapp.so

include $(PREBUILT_SHARED_LIBRARY)

LOCAL_SHARED_LIBRARIES := identifyapp


include $(CLEAR_VARS)

LOCAL_MODULE := casdkjni

LOCAL_SRC_FILES := PREBUILT/$(TARGET_ARCH_ABI)/libcasdkjni.so

include $(PREBUILT_SHARED_LIBRARY)

LOCAL_SHARED_LIBRARIES := casdkjni


解释:

LOCAL_MODULE : 这个是模块的名称,在其他地方调用该名称的时候,就自动省略掉前面的lib 和 结尾的.so

LOCAL_SRC_FILE : 引用文件夹下面的.so,如果是纯路径的话就直接填写,$(TARGET_ARCH_ABI) 指的是在armeabi ,armeabi-v7a,x86 下面找到相应的.so文件,例如:找到libidentifyapp.so和libcasdkjni.so

如图所示:



然后编译运行,就会在

项目/libs/armeabi/下生成: libcasdkjni.so  和  libidentifyapp.so

如图所示:




.so 文件是在项目下面的libs 生成相应的.so 文件, 不过要想项目跑起来,还需要在cocos2dx 的主java文件中找到System.loadLibrary("game"); 这句添加代码

static {

System.loadLibrary("casdkjni");

System.loadLibrary("identifyapp");

System.loadLibrary("game");

}

这里有先后顺序,cocos2dx的.so 文件(game) 一定要放到casdkjni 和 identify app 的后面,不然会报错,如图:






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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值