Cocos2d-x&Android&windows7

1.安装JAVASDK

配置java环境变量

2.安装AndroidDevelopmentTools(ADT)

ADT包含了androidsdkeclipse

3.安装NativeDevelopmentKit(NDK);

配置环境变量NDK_ROOT

4.安装Cygwin

配置cygwin的环境变量;

5.修改Android.mk文件

LOCAL_SRC_FILES上加上需要编译的源文件;

LOCAL_WHOLE_STATIC_LIBRARIES加上需要包含的链接库;

6.用cygwin进入目录

修改cocos2dx相对路径

如:cd/cygdrive/f/cocos2d-2.1rc0-x-2.1.3/samples/Cpp/HelloCpp/proj.android

运行./build_native.sh编译静态库;

7.导入项目

Eclipse>File>Import>AndroidProjectFromExistingCode.

选择项目,选择RunAs>AndroidApplication

如果编译提示无法识别cocos2d-x,可以Properties>JavaBuildpath>LinkSource

选择选择E:\cocos2d-x\cocos2d-2.0-x-2.0.4\cocos2dx\platform\android\java\src路径,Name不与src冲突即可。

注意事项:PC模拟器运行会异常退出,网上搜索说模拟器不支持gles2.0导致的,用真机没有问题。

8.补充(130519)

可以用模拟器启动,勾选使用GPU模拟就行了

Eclipse > Run > Run configurations >

效果图:

9.音效支持

Cocos2d-x音效对不同平台实现支持, 编译的时候需要包含对应的路径,

Android下修改makefile文件,如下图:

10.Android.mk简易写法

原来是把源文件一个个列进来,像这样:

LOCAL_SRC_FILES += ../../Classes/class.cpp \

../../Classes/class2.cpp \

../../Classes/class3.cpp \

../../Classes/class4.cpp \

......

又长又繁琐,网上查到一种简易的makefile写法,

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := testandroid_sharedLOCAL_MODULE_FILENAME := libtestandroid#目录下所有*.cpp文件;CLASS_FILES := $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)#目录下任一子目录下所有*.cpp文件;CLASS_FILES += $(wildcard $(LOCAL_PATH)/../../Classes/*/*.cpp)CLASS_FILES := $(CLASS_FILES:$(LOCAL_PATH)/%=%)LOCAL_SRC_FILES := hellocpp/main.cpp LOCAL_SRC_FILES += $(CLASS_FILES)LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes#音频头文件目录;LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../CocosDenshion/includeLOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_staticLOCAL_WHOLE_STATIC_LIBRARIES += box2d_staticLOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_staticinclude $(BUILD_SHARED_LIBRARY)$(call import-module,cocos2dx)#音频源文件目录;$(call import-module, CocosDenshion/android)


以后不管工程里添加多少源文件,makefile都会全部编译:

#目录下所有*.cpp文件;
CLASS_FILES := $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)

#目录下任一子目录下所有*.cpp文件;
CLASS_FILES += $(wildcard $(LOCAL_PATH)/../../Classes/*/*.cpp)
CLASS_FILES := $(CLASS_FILES:$(LOCAL_PATH)/%=%)

LOCAL_SRC_FILES := hellocpp/main.cpp
LOCAL_SRC_FILES += $(CLASS_FILES)

如果是多层子目录,可以这样:

CLASS_FILES += $(wildcard $(LOCAL_PATH)/../../Classes/*/*/*/*.cpp)

*代表任意目录,有几层子目录,就添加几个*号。

参考链接:http://www.cnblogs.com/graphicsme/archive/2012/11/06/2756914.html

更多相关文章

  1. Android编译过程详解(一)
  2. How to add a new keycode in android
  3. Android(安卓)xml资源文件中@、@android:type、@*、?、@+含义和区
  4. Android修改自己程序字体的方法详解
  5. Android(安卓)xml资源文件中@、@android:type、@*、?、@+含义和区
  6. How to add a new keycode in android
  7. Android的xml文件中@、@android:type、@*、?、@+的含义和区别
  8. 设置textview的字体
  9. Android学习笔记(二八):字体

随机推荐

  1. MySQL修炼之联结与集合浅析
  2. 如何利用MySQL的binlog恢复误删数据库详
  3. 深入理解Mysql事务隔离级别与锁机制问题
  4. MySql escape的使用案例详解
  5. MySql数据库单表查询与多表连接查询效率
  6. MySQL数据库分组查询group by语句详解
  7. MySQL时间类型和模式详情
  8. MySQL 中 datetime 和 timestamp 的区别
  9. 基于Mysql+JavaSwing的超市商品管理系统
  10. MySQL深分页问题解决的实战记录