穿裤衩闯天下

Cocos2d-x 3.x 开发之引用Extensions第三方库后打包成apk遇到的问题及解决办法

在使用Cocos2d-x写游戏想使用9.png的时候遇到了一些问题,需要用到Scale9Sprite类,这个算是第三方库里的类,在win32环境下加入头文件
cocos-ext.h编译没问题,但是在打包到Androidapk时出现找不到文件,这让我很蛋疼,发现原来需要把路径写成extensions/cocos-ext.h 单单是这样还是不能编译通过的,要在Android项目jni目录下的Android.mk文件中引入extensions的静态库和相关模块儿
下边是我的示例Android.mk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := cocos2dcpp_shared
LOCAL_MODULE_FILENAME := libcocos2dcpp
LOCAL_SRC_FILES := hellocpp/main.cpp
../../Classes/AppDelegate.cpp
../../Classes/HelloWorldScene.cpp
../../Classes/MyFunc.cpp
../../Classes/CellSprite.cpp
../../Classes/LoadScene.cpp
../../Classes/MainScene.cpp
../../Classes/GameScene.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extensions_static #添加cocos_extension 静态库
LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static #添加cocostudio 静态库
include $(BUILD_SHARED_LIBRARY)
$(call import-module,2d)
$(call import-module,audio/android)
$(call import-module,Box2D)
$(call import-module,extensions) #导入 extensions 模块儿
$(call import-module,editor-support/cocostudio) #导入 cocostudio 模块儿

OK了,如上所说在使用了其他的第三方库的时候,要在这个Android.mk文件中添加引用模块儿,这样在编译就OK了;
另外在项目中添加cocostudio以及GUIextensions库可以看我的另一片文章:
Cocos2d-x 3.x 引用CocoStudio等第三方库

最近又看了下,好像3.x引擎版本新建的项目在Android.mk中已经包含了所有的模块儿,不过都是处于注释状态,要手动打开你需要的库就行了

阿弥陀佛,施主,来个馒头吧 😋 ~