接上一节内容:cocos2dx - 伤害实现

本节主要讲Android环境配置及编译

  在第一节中setup.py的配置里,我们没有配置对应的ndk,sdk,ant的路径,在这里需要先配置好环境变量。

一、准备工具

  jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  ant: http://ant.apache.org/bindownload.cgi

  sdk:https://dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip

  ndk:http://dl.google.com/android/ndk/android-ndk64-r10-windows-x86_64.zip

因为google被封,sdk和ndk国内下载会有问题,至于其他下载方法大家自己看了。个人意见还是官网下比较安全,至少辛苦做出来的软件不会有被植入的危险。

二、配置环境

  除jdk直接安装外,其他几个先解压到对应的目录然后在环境变量中配置如下:

   ndk  ant  sdk

这样重新打开setup.py就可以发现android编译的环境配置好了。

三、开发编译

  配好环境后,编译安卓项目相对简单。

首先,找到项目路径下的 E:\test\proj.android 目录,然后打开jni/Android.mk文件。添加项目需要用到的c++文件,如下:

  

其次,在proj.android 目录下找到 build_native.py文件,即可进行编译操作。

debug编译:

  直接运行 build_native.py 即可进行编译。

release编译:

  打开cmd命令行拖动 build_native.py 到窗口中 并添加 -b release 即可,如下左图。同时release版本需要有key文件加密,会提示如右下图。

      

生成keystore:

  1、用cmd命令行找到jdk安装目录下的bin目录。

  2、执行该命令行:keytool -genkey -alias nam1 -keyalg RSA -validity 20000 -keystore E:/android.keystore

   3、根据命令行操作,同时记住name1和2组密码,即可在  E:/android.keystore 下生成对应的keystore文件。

此时,有了keysotre后,将记录的文件路径及别名和密码对应在编译的时填入,即可生成成功。如下:

  

如果在编译的时候发现keystore信息写错了,可以在ant.properties文件里进行修改即可。

常规的开发编译到这里就结束了,我们可以在bin目录下看到对应apk包了。

四、策划编译

  开发编译可以满足程序的调试测试等需求,但是通常情况下游戏都有单独的配置文件供策划进行配置,同时策划配置后需要在手机上进行快速预览效果。

为了不在每次调整配置文件都要程序重新编译,此时我们需要配置一个环境供策划可以编译的环境。

1、配置jar,ant环境变量,同时配置sdk路径,环境命于下面build.xml添加的一致为 ANDROID_HOME

2、清楚project.properties中的 android.library.reference 对cocos2d项目的引用,在3中改为引用对应的包。

   清楚local.properties 中对sdk路径的引用,并在build.xml中改为使用环境变量,如下:

3、复制  E:\test\cocos2d\cocos\platform\android\java\bin\  下生成的 classes.jar到libs目录下。

这样在执行cmd命令下执行ant release即可进行编译,为了方便使用,可以添加一个bat文件,内容写 ant release即可。

最后,将下列的文件上传svn,策划仅需获得这些文件就可以在双击release.bat后进行编译了。

最新文章

  1. [ARM] Cortex-M Startup.s启动文件相关代码解释
  2. linux中安装eclipse,安装好之后不能直接建servlet,不能直接在jsp页面中run on server.权限在作怪,我猜的,
  3. Astyle编程语言格式化工具的中文说明
  4. tomcat中的get、post区别
  5. python安装win32api pywin32 后出现 ImportError: DLL load failed
  6. 轮询、长轮询、长连接、flash socket 的区别
  7. ACM Robot Motion
  8. sql连接查询中的分类
  9. legend2---项目总结(legend2的意义)
  10. AST的作用
  11. D8 双连通分量
  12. 《http权威指南》读书笔记3
  13. ZJOI 2015 幻想乡战略游戏(动态点分治)
  14. WPF 交替行背景属性
  15. if __name__ == '__main__' 含义
  16. Openstack镜像和密码
  17. 循环获取某个class下的多个select的选中值
  18. 线段树模板(施工ing)
  19. oracle增加表空间的四种方法
  20. 红茶一杯话Binder (ServiceManager篇)

热门文章

  1. 浏览器console的用法
  2. Python虚拟环境virtualenv
  3. Java中equals和==之间的区别
  4. 英语词典Alpha版本发布说明
  5. 【Alpha】Daily Scrum Meeting——Day2
  6. 201521123020《Java程序设计》第8周学习总结
  7. windows 2008 R2操作系统上使用iis服务运行php和mysql数据库的网站遇到的验证码不显示问题?
  8. RSA原理、ssl认证、Tomcat中配置数字证书以及网络传输数据中的密码学知识
  9. JUDE-UML工具软件介绍
  10. 来自projecteuler.net网站的练习题1