加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 16:22:48 所属栏目:百科 来源:网络整理
导读:刚开始接触cocos2d-x,在一个项目中需要将cocos2d-x与传统android代码混合使用,原有android项目中使用到的so文件也就需要添加到项目中,由于cocos2d-x项目在编译后会自动生成so文件,并且删除其他在lib中出现的so文件,所以需要在编译的时候修改原有android

刚开始接触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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读