Cocos2d-x中使用第三方so库
来源:互联网 发布:阿里云 安全组规则 编辑:程序博客网 时间:2024/05/24 15:36
原文地址:http://www.2cto.com/kf/201411/348398.html
项目中如果使用到第三方的SDK,大多数是以.so动态共享库的文件打包给我们使用,如何使用他们,见下面分析。
1、获得库文件
假如我们得到的库文件是libxxx.so(注:关于.so文件的命名方式,可百度)。在Jni目录下新建prebuilt文件夹,把获得的库文件拷贝到该文件夹下。
2、使用库文件
库文件的使用需要修改Android.mk,在mk文件中加入以下代码:
include $(CLEAR_VARS) LOCAL_MODULE := xxx LOCAL_SRC_FILES := prebuilt/libxxx.so include $(PREBUILT_SHARED_LIBRARY) LOCAL_SHARED_LIBRARIES := xxx
Java中调用
static { System.loadLibrary("XXX"); System.loadLibrary("cocos2dcpp");}
3、编译
编译后会在libs/armeabi目录下生产我们需要的libxxx.so文件,并编译到APK中。
4、万普例子
以下是万普平台Demo的mk文件,在这贴出来,让大家体会以下使用方法。
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := uninstall //第一步LOCAL_SRC_FILES := prebuilt/libuninstall.so //第二步include $(PREBUILT_SHARED_LIBRARY) //第三步include $(CLEAR_VARS)$(call import-add-path,$(LOCAL_PATH)/../../cocos2d)$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external)$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos)LOCAL_MODULE := cocos2dcpp_sharedLOCAL_MODULE_FILENAME := libcocos2dcppLOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/HelloWorldScene.cpp\ ../../Classes/WapsAd.cppLOCAL_C_INCLUDES := $(LOCAL_PATH)/../../ClassesLOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_staticLOCAL_WHOLE_STATIC_LIBRARIES := cocos_extension_staticLOCAL_WHOLE_STATIC_LIBRARIES += box2d_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static# LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static# LOCAL_WHOLE_STATIC_LIBRARIES += cocosbuilder_static# LOCAL_WHOLE_STATIC_LIBRARIES += spine_static# LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static# LOCAL_WHOLE_STATIC_LIBRARIES += cocos_network_static# LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_staticinclude $(BUILD_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_SHARED_LIBRARIES := uninstall //第四步$(call import-module,.)$(call import-module,audio/android)$(call import-module,Box2D)$(call import-module,editor-support/cocostudio)$(call import-module,extensions) # $(call import-module,Box2D)# $(call import-module,editor-support/cocosbuilder)# $(call import-module,editor-support/spine)# $(call import-module,editor-support/cocostudio)# $(call import-module,network)# $(call import-module,extensions)
注意事项
在主java文件中找到System.loadLibrary("cocos2dcpp");这句,然后在下面同样添上你要加载的三方库名称即可。貌似默认不指明的话,会到系统路径下去找so文件(没有root或system的权限,无权对这个文件夹操作),这几个so按道理是会装到data/appname/lib目录下的。
加载顺序
这里有个问题要尤其注意,就是这些动态库的加载顺序,一定要放到libcocos2dcpp前加载,否则在载入libcocos2dcpp时,会因为没有之前这两个依赖的动态库而报错,报的就是对应的动态库木有载入。 0 0
- Cocos2d-x中使用第三方so库
- Cocos2d-x中使用第三方so库
- cocos2d-x使用第三方的so库文件
- cocos2d-x 加载第三方.so文件
- cocos2d-x的android项目中如何加载第三方so库
- cocos2d-x的android项目中如何加载第三方so库
- cocos2d-x的android项目中如何加载第三方so库
- Cocos2d-X学习——Android移植,使用第三方库.so被删掉问题
- Cocos2d-X学习——Android移植,使用第三方库.so被删掉问题
- Android Studio中使用JNI和第三方.so库
- 关于在cocos2d-x中插入第三方广告
- cocos2d-x使用第三方的TTF字体库
- cocos2d-x使用第三方的TTF字体库
- cocos2d-x使用第三方的TTF字体库
- windows下打包cocos2d-x之自动复制第三方so文件
- android stidio 中使用第三方的so
- PhoneGap中自创插件使用第三方.so文件
- AS使用jni并且c++中使用第三方so库
- Spark学习之13:Standalone HA
- Ubuntu安装psycopg2
- ☆成年人的儿童节☆ 全场四折
- c#-关于自动属性的思考
- JavaScript中confirm,alert,prompt的用法
- Cocos2d-x中使用第三方so库
- Android中Context详解 ---- 你所不知道的Context
- APACHE COMMONS LOGGING
- C++ 7.8.4 实参类型转换(没有看完!)
- easyui 扩展
- i_array_column和_curl 和 json2array自定义函数
- Oracle学习笔记(10)----------- 约束
- PHP静态成员变量和非静态成员变量
- Unity3D & Java 基于 Protobuf 通信实现