cocos2d-x的android项目中如何加载第三方so库

cocos2d-x的android项目中如何加载第三方so库,第1张

概述刚开始接触cocos2d-x,在一个项目中需要将cocos2d-x与传统android代码混合使用,原有android项目中使用到的so文件也就需要添加到项目中,由于cocos2d-x项目在编译后会自动生成so文件,并且删除其他在lib中出现的so文件,所以需要在编译的时候修改原有android.mk文件来增加第三方so文件的声明。 例如将百度推送的so文件加载到项目中: 1. 在jni目录中新建

刚开始接触cocos2d-x,在一个项目中需要将cocos2d-x与传统androID代码混合使用,原有androID项目中使用到的so文件也就需要添加到项目中,由于cocos2d-x项目在编译后会自动生成so文件,并且删除其他在lib中出现的so文件,所以需要在编译的时候修改原有androID.mk文件来增加第三方so文件的声明。


例如将百度推送的so文件加载到项目中:

1.在jni目录中新建armeabi文件(暂且不考虑v7的情况),将百度的libbdpush_V1_0.so文件放进去。

2.修改cocos2d-x项目中jni目录下的AndroID.mk中添加以下代码:

include$(CLEAR_VARS)

LOCAL_MODulE := armbdpush_V1_0

LOCAL_SRC_fileS :=$(TARGET_ARCH_ABI)/libbdpush_V1_0.so

include$(PREBUILT_SHARED_liBRARY)

其中LOCAL_MODulE是要加载模块的名称,自己定义即可;LOCAL_SRC_fileS是指向so文件的路径,$(TARGET_ARCH_ABI)则是对应的到libs的armeabi目录。


如果在HelloWorld项目中添加的话,完整的AndroID.mk为如下:


LOCAL_PATH :=$(call my-dir)


include$(CLEAR_VARS)

LOCAL_MODulE := armbdpush_V1_0

LOCAL_SRC_fileS :=$(TARGET_ARCH_ABI)/libbdpush_V1_0.so

include$(PREBUILT_SHARED_liBRARY)


include$(CLEAR_VARS)

LOCAL_MODulE := hellocpp_shared


LOCAL_MODulE_filename := libhellocpp


LOCAL_SRC_fileS := hellocpp/main.cpp \

../../Classes/AppDelegate.cpp \

../../Classes/HelloWorldScene.cpp

LOCAL_C_INCLUDES :=$(LOCAL_PATH)/../../Classes

LOCAL_WHolE_STATIC_liBRARIES := cocos2dx_static

include$(BUILD_SHARED_liBRARY)


$(call import-module,cocos2dx)

总结

以上是内存溢出为你收集整理的cocos2d-x的android项目中如何加载第三方so库全部内容,希望文章能够帮你解决cocos2d-x的android项目中如何加载第三方so库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1067914.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存