前人栽树,后人乘凉,这句话有点过了,只是想感谢一下为了移植cocos2d-x到android的“大婶”们所做出的贡献。 

        首先android环境需要配置好,需要的文件如下: 

          

        貌似ant没用上,我是直接用eclipse打开项目编译生成apk的。 

        java的环境变量怎么配置,网上已经多的用锹搓,这里就不阐述了。 

        打开eclipse,配置sdk,ndk,怎么更新sdk也不阐述了,很蛋疼的事情。 

            

          

        以上IDE环境配置成功,正式cocos2d-x 3.2 移植到android平台下 

        先看看cocos2d-x 的android目录: 

          

        第一步: 

        到cocos2d-x版本目录下,如 

        E:\cocos2d-x\cocos2d-x_version\cocos2d-x-3.2\cocos2d-x-3.2\cocos\platform\android\java\src\org\cocos2dx\lib  

        拷贝目录lib及里面的文件到项目目录 

        E:\cocos2d-x\qhg\Planes\proj.android\src\org\cocos2dx  

        这里这个目录里会有两个文件夹:cpp、lib 

        第二步: 

        进入E:\cocos2d-x\qhg\Planes\proj.android\jni目录,会看到一个hellocpp目录和两个mk文件 

        Application.mk文件我没有去动它。  

        主要是Android.mk,里面加上自动拷贝cpp文件的脚本: 

        # 遍历目录及子目录的函数 define walk $(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e))) endef # 遍历Classes目录 ALLFILES = $(call walk, $(LOCAL_PATH)/../../Classes) FILE_LIST := hellocpp/main.cpp # 从所有文件中提取出所有.cpp文件 FILE_LIST += $(filter %.cpp, $(ALLFILES)) LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)  

          

        这段脚本的意思是提取Classes目录里所有的cpp文件到FILE_LIST 

        Android.mk的完整脚本:  

         

        LOCAL_PATH := $(call my-dir)

        

        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_shared

        

        LOCAL_MODULE_FILENAME := libcocos2dcpp

        

        

        

        

        # 遍历目录及子目录的函数

        define walk

        $(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))

        endef

        # 遍历Classes目录

        ALLFILES = $(call walk, $(LOCAL_PATH)/../../Classes)

        FILE_LIST := hellocpp/main.cpp

        # 从所有文件中提取出所有.cpp文件

        FILE_LIST += $(filter %.cpp, $(ALLFILES))

        LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)

        

        

        

        

        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 += 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_static

        

        

        include $(BUILD_SHARED_LIBRARY)

        

        $(call import-module,.)

        $(call import-module,audio/android)

        

        $(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)

         后面六行最初是注释掉的,是cocos2d-x扩展功能,如果需要时对应的 

         

        LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static 

        ...... 

        这几个也要打开注释 

        第三步: 

        打开项目的这个目录 

        E:\cocos2d-x\qhg\Planes\proj.android  

        然后在地址栏里输入cmd,这样就直接定位到此目录,然后输入命令build_native.py 

        回车之后生成需要的so文件,so文件会在E:\cocos2d-x\qhg\Planes\proj.android\libs\armeabi目录里产生 

        运行完成之后,会多出几个目录 

          

        多了一个gen文件夹(自动生成)、libs文件夹(用来存放libcocos2dcpp.so)、obj文件夹(看名字就知道是编译过程中生成的中间文件)、bin文件夹(最后.apk包所在地)、assets文件夹(存放资源文件)   

        第四步: 

        导入项目到eclipse并编译运行到真机上: 

          

        项目资源列表空白处点击Import 

          

        选择这项,并下一步,然后点击Browse...找到项目目录,然后点击Finish,成功导入项目 

          

          

        在eclipse项目里有这样一个文件project.properties,这个是android的版本号,根据自己的需求去变动,cocos2d-x 3.2默认给的是target=android-13,对应的android版本是3.2 

        清单文件AndroidManifest.xml,需要注意的是游戏的横屏竖屏配置android:screenOrientation="landscape",landscape表示横屏,portrait表示竖屏 

        第五步: 

        运行项目,首先连接真机到电脑 

        然后在项目目录上右键,选择如图 

          

        这时会出现真机设备 

          

        选中真机,点击ok,最终会在真机上自动安装并运行游戏。

cocos2d-x 3.2 移植到android的更多相关文章

  1. Cocos2D-X2.2.3学习笔记9(处理重力感应事件,移植到Android加入两次返回退出游戏效果)

    这节我们来学习Cocos2d-x的最后一节.怎样处理重力感应事件.移植到Android后加入再按一次返回键退出游戏等.我这里用的Android.IOS不会也没设备呃 效果图不好弄,由于是要移植到真机上 ...

  2. 基于Cocos2d-x-1.0.1的飞机大战游戏迁移到Cocos2d-x-3.0版本,并移植到Android平台成功运行

    一.版本迁移中的问题 1.游戏元素Sprite.Label.Action等等的创建函数名都改为create. 2.函数的回调callfunc_selectorcallfuncN_selectorcal ...

  3. Cocos移植到Android的一些问题-中文乱码问题

    Android平台版本和设备碎片化很严重,因此从Win32平台移植到Android平台会有很多问题,下面是我们归纳的从Win32平台移植到Android平台遇到的一些问题.在Android平台中文乱码 ...

  4. 将Unity3D游戏移植到Android平台上

    将Unity3D游戏移植到Android平台是一件很容易的事情,只需要在File->Build Settings中选择Android平台,然后点击Switch Platform并Build出ap ...

  5. iperf linux版本移植到android (使用工具链方式不是使用Android.mk)

    由于很多程序是用makefile编译linux应用程序的,如果移植到android就要重新写Android.mk,对于不熟悉这个的人来说,特别麻烦,所以这里介绍只修改makefile就能移植到andr ...

  6. Windows下将ImageMagick移植到Android平台

    Windows下将ImageMagick移植到Android平台 原文链接  http://www.pedant.cn/2014/06/18/imagemagick-ported-android/ I ...

  7. React Native移植原生Android

    (一)前言 之前已经写过了有关React Native移植原生Android项目的文章,不过因为RN版本更新的原因吧,跟着以前的文章可能会出现一些问题,对于初学者来讲还是会有很多疑难的困惑的,而且官方 ...

  8. ffmpeg 移植到 android 并使用

    同步更新至个人blog:http://dxjia.cn/2015/07/ffmpeg-porting-to-android/ 空闲做了个小应用,从视频里截图,然后再将截图拼接为一个gif动画: 起初使 ...

  9. libxml移植到android

    libxml是C语言写的xml解析库,是我们开发可移植程序的首选,下面讲述将其移植到android的步骤 1.下载已经配置好的源代码包android_libxml2.rar http://pan.ba ...

随机推荐

  1. LeetCode(114) Flatten Binary Tree to Linked List

    题目 分析 按要求转换二叉树: 分析转换要求,发现,新的二叉树是按照原二叉树的先序遍历结果构造的单支二叉树(只有右子树). 发现规则,便容易处理了.得到先序遍历,构造即可. AC代码 /** * De ...

  2. LeetCode(79) Word Search

    题目 Given a 2D board and a word, find if the word exists in the grid. The word can be constructed fro ...

  3. python模拟浏览器webdriver登陆网站后抓取页面并输出

    关键在于以下两行代码 特别是find_element_by_xpath写法 很多写成 findElementsByXpath不知道是写错了 还是高级版本是这么写的... #webElement = s ...

  4. unittest跳过测试和预期失败

    在运行测试时,有时需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败.unittest提供了这些需求的装饰器. unittest.skip(reason) 无条 ...

  5. jsp jstl标签库 el表达式

    一.JSTL标签是什么? 提供了对国际化(I18N)的支持,它可以根据发出请求的客户端地域的不同来显示不同的语言. 同时还提供了格式化数据和日期的方法.实现这些功能需要I18N格式标签库(I18N-c ...

  6. HDU-5423 Rikka with Tree。树深搜

    Rikka with Tree 题意:给出树的定义,给出树相似的定义和不同的定义,然后给出一棵树,求是否存在一颗树即和其相似又与其不同.存在输出NO,不存在输出YES. 思路:以1号节点为根节点,我们 ...

  7. BZOJ 1069 [SCOI2007]最大土地面积 ——计算几何

    枚举对角线,然后旋转卡壳即可. #include <map> #include <cmath> #include <queue> #include <cstd ...

  8. BZOJ 2820 YY的GCD ——莫比乌斯反演

    我们可以枚举每一个质数,那么答案就是 $\sum_{p}\sum_{d<=n}\mu(d)*\lfloor n / pd \rfloor *\lfloor m / pd \rfloor$ 直接做 ...

  9. BZOJ 1016 [JSOI2008]最小生成树计数 ——Matrix-Tree定理

    考虑从小往大加边,然后把所有联通块的生成树个数计算出来. 然后把他们缩成一个点,继续添加下一组. 最后乘法原理即可. 写起来很恶心 #include <queue> #include &l ...

  10. BZOJ 2194 快速傅立叶之二 ——FFT

    [题目分析] 咦,这不是卷积裸题. 敲敲敲,结果样例也没过. 看看看,卧槽i和k怎么反了. 艹艹艹,把B数组取个反. 靠靠靠,怎么全是零. 算算算,最终的取值范围算错了. 交交交,总算是A掉了. [代 ...