cocos2dx(2.0.2)含有Box2d编译到android平台上

本文为firedragonpzy原创,转载务必在明显处注明:
转载自【Softeware MyZone】原文链接: 
http://www.firedragonpzy.com.cn/index.php/archives/2709

欢迎热爱编程的朋友们参与到cocos2d-x编程中,为了给大家提供良好的交流环境,网站以开启QQ群
Software MyZone:66202765(群号,欢迎加入,若满,请加1群)
Software MyZone 1群(2dx):286504621
【加群请写:Software MyZone或者是firedragonpzy】
群论坛正在筹建中,欢迎大家多提些建设性意见……

之前写了Box2d物体移动的例子,没有分享一下,最近规整了一下代码,与大家分享。。。
今天编了个2.0.2的游戏到android平台上,麻烦是一大堆啊!
这里,我贴出解决方案,你要是用2.0.2的话直接按照我说的来就好了,期间一步步出现的东西太繁琐,不便一一详述:
首先看Android.mk文件,之前1.x的版本的时候这个文件在class里面,到了2.0.2的时候他到了proj.android\jni这个下面,大家注意。若不想改变Android.mk文件,投机取巧的办法是引入的时候引入cpp而不引入h文件,这样子就不用改mk文件,不过群【66202765】里边已经共享了一个工具,获取class文件加下的类,形式和要求的一样,现在贴出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
33
34
LOCAL_PATH := $(call my-dir)
 
include $(CLEAR_VARS)
 
LOCAL_MODULE := game_shared
 
#LOCAL_MODULE_FILENAME := libgame
 
LOCAL_SRC_FILES := hellocpp/main.cpp \
  ../../Classes/AppDelegate \
  ../../Classes/BodyObject.cpp \
  ../../Classes/FDBody.cpp \
  ../../Classes/GB2ShapeCache-x.cpp \
  ../../Classes/GLES-Render.cpp \
  ../../Classes/HelloWorldScene.cpp \
  ../../Classes/PhysicsLayer.cpp \
  ../../Classes/PhysicsSprite.cpp \
  ../../Classes/TextField.cpp \
  ../../Classes/ToyMenuSprite.cpp
 
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \
  $(LOCAL_PATH)/../../../cocos2dx \
  $(LOCAL_PATH)/../../../cocos2dx/platform \
  $(LOCAL_PATH)/../../../cocos2dx/include \
  $(LOCAL_PATH)/../../../cocosDension/include
 
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static box2d_static
 
include $(BUILD_SHARED_LIBRARY)
 
$(call import-module,CocosDenshion/android) \
  $(call import-module,cocos2dx) \
  $(call import-module,extensions) \
  $(call import-module,external/Box2D)

期间,多了box2d,你要是正常编译会报Box2D/Box2D.h找不到,这时候你需要处理:$(call import-module,external/Box2D) 和 box2d_static,今天从群里问了什么要单独引用第三方的包啊!等等,那样太麻烦,贴出这种方法供大家使用
还有一个就是#LOCAL_MODULE_FILENAME := libgame这个要注释起来,否则会报错,具体是什么我忘记了。【补充:今天看了看,是game_shared库找不到】
最后一个错误就是包game库什么的找不到,体现是你一运行程序就崩溃,这是你将项目src下面一个文件下的

?
1
System.loadLibrary( "game" );

改为

?
1
System.loadLibrary( "game_shared" );

ok,具备了这些,2dx–2.0.2编译到android下面就没什么问题了。
好了,就到这里吧,呼呼……

你可能感兴趣的:(android,cocos2dx,box2D)