﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-战魂小筑-随笔分类-移动开发</title><link>http://www.cppblog.com/sunicdavy/category/20545.html</link><description>跨平台通用游戏服务器架构, 脚本及嵌入技术, 3D引擎&amp;Shader代码生成, 开发工具技巧 qq: 20998333</description><language>zh-cn</language><lastBuildDate>Sun, 09 Jun 2013 09:56:09 GMT</lastBuildDate><pubDate>Sun, 09 Jun 2013 09:56:09 GMT</pubDate><ttl>60</ttl><item><title>最便捷的Android环境部署cocos2dx程序</title><link>http://www.cppblog.com/sunicdavy/archive/2013/06/09/200904.html</link><dc:creator>战魂小筑</dc:creator><author>战魂小筑</author><pubDate>Sun, 09 Jun 2013 09:55:00 GMT</pubDate><guid>http://www.cppblog.com/sunicdavy/archive/2013/06/09/200904.html</guid><wfw:comment>http://www.cppblog.com/sunicdavy/comments/200904.html</wfw:comment><comments>http://www.cppblog.com/sunicdavy/archive/2013/06/09/200904.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sunicdavy/comments/commentRss/200904.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sunicdavy/services/trackbacks/200904.html</trackback:ping><description><![CDATA[<p>本文整个部署过程无需下载及安装使用Cygwin环境， 以下部署过程需要用到的程序及版本  </p><p>请注意下载对应你系统的版本, 64位系统请保证后文全系使用64位程序, 以免遇到不必要的麻烦  </p><p>1.JDK&amp;JRE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JAVA运行时及开发包  </p><p>2.ADT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是Eclipse的一个插件，这一步是为了管理安卓开发库  </p><p><a href="http://developer.android.com/sdk/index.html">http://developer.android.com/sdk/index.html</a>  </p><p>作为新手, 请下载ADT Bundle For Windows, 这个版本已经包含  </p><p>ADK（安卓开发包）, CDT（Eclipse的C/C++开发插件）及对应的Eclipse, 可以避免第一次部署出现的各种烦心!  </p><p>3.NDK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 只有ADT已经可以运行普通的Andriod程序，但是如果需要编译C/C++程序， 还需要NDK  </p><p><a href="http://developer.android.com/tools/sdk/ndk/index.html">http://developer.android.com/tools/sdk/ndk/index.html</a>  </p><p>4. cocos2dx 2.0.4版本  </p><p>&nbsp; </p><p><strong>准备SDK API</strong>  </p><p align="left">下载好ADT后解压， 有如下目录</p> <p>eclipse\&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;- 开发环境</p> <p>sdk\&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;- Andriod SDK</p> <p>SDK Manager.exe&nbsp;&nbsp;&nbsp;&nbsp; &lt;-- Android开发包管理器, 由于Andriod版本较多, 所以此管理器可以方便开发者选择部署目标机器</p> <p>打开SDK Manager在Android 2.2(API 8)里的 SDK Platform, Google APIs前打勾, 点击右下角的Instal packages</p> <p>如果感觉下载速度慢, 可以移步这里<a href="http://my.oschina.net/heguangdong/blog/17443">http://my.oschina.net/heguangdong/blog/17443</a>, 选择Andriod离线下载</p> <p>这里是下载链接</p> <p><a href="http://dl-ssl.google.com/android/repository/google_apis-8_r02.zip">http://dl-ssl.google.com/android/repository/google_apis-8_r02.zip</a></p> <p><a href="http://dl-ssl.google.com/android/repository/android-2.2_r02-windows.zip">http://dl-ssl.google.com/android/repository/android-2.2_r02-windows.zip</a></p> <p><a href="https://dl-ssl.google.com/android/repository/usb_driver_r04-windows.zip">https://dl-ssl.google.com/android/repository/usb_driver_r04-windows.zip</a></p> <p>把android开头的文件解压到platforms目录下</p> <p>把goole_apis开头的文件解压到add-ons目录下</p> <p align="left">把usb_driver_r03-windows.zip解压到usb_driver目录下。</p> <p><strong>Eclipse导入工程</strong>  </p><p>打开Eclipse</p> <p>导入Cocos2dx例子工程:</p> <p>Eclipse中File-&gt;New-&gt;Other...选择Andriod Project from Existing Code</p> <p>在Import Projects的Root Directory中导入D:\Develop\RevWar\sdk\cocos2d-2.0-x-2.0.4\samples\HelloCpp\proj.android\</p> <p><strong>注意, 不要选中 Copy project into workspace, 否则路径编乱很难编译成功</strong></p> <p align="left">&nbsp;</p> <p><strong>导入cocos2dx的java框架</strong>  </p><p>在src目录中new package, 输入org.cocos2dx.lib, 在org.cocos2dx.lib的package中点Import-&gt; FileSystem </p> <p>选中目录D:\Develop\RevWar\sdk\cocos2d-2.0-x-2.0.4\cocos2dx\platform\android\java\src\org\cocos2dx\lib\, 点选所有java文件</p> <p>工程Properties-&gt;Builder-&gt;New-&gt;Program</p> <p><strong>在Main标签中填写</strong></p> <p>填写NDK编译命令行 D:\Develop\android-ndk-r8e\ndk-build.cmd</p> <p>点击Browser Workspace选中当前工程,出现${workspace_loc:/HelloCpp}</p> <p><strong>切换到Environment标签中填写</strong></p> <p>新建NDK_MODULE_PATH 填写D:\Develop\RevWar\sdk\cocos2d-2.0-x-2.0.4\;D:\Develop\RevWar\sdk\cocos2d-2.0-x-2.0.4\cocos2dx\platform\third_party\android\prebuilt\</p> <p><strong>修改cocos2dx的Android.mk, diff如下</strong></p> <p>@@ -153,6 +153,7 @@</p> <p>LOCAL_WHOLE_STATIC_LIBRARIES += cocos_jpeg_static</p> <p>LOCAL_WHOLE_STATIC_LIBRARIES += cocos_libxml2_static</p> <p>LOCAL_WHOLE_STATIC_LIBRARIES += cocos_libtiff_static</p> <p>+LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static</p> <p># define the macro to compile through support/zip_support/ioapi.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p> <p>LOCAL_CFLAGS := -DUSE_FILE32API</p> <p>@@ -164,3 +165,4 @@</p> <p>$(call import-module,libpng)</p> <p>$(call import-module,libxml2)</p> <p>$(call import-module,libtiff)</p> <p>+$(call import-module,CocosDenshion/android)</p> <blockquote></blockquote> <p><strong>F&amp;Q</strong></p> <p><strong>andriod-8问题</strong></p> <p>修改D:\Develop\RevWar\sdk\cocos2d-2.0-x-2.0.4cocos2dx\platform\android\java\project.properties中的target=android-8改成你需要的版本</p> <p><strong>resources.ap_ does not exist </strong></p> <p>assert目录中有资源出问题, 排查即可</p> <p>例如: cocos2d-2.0-x-2.0.4\samples\TestCpp\proj.android\assets\Images\*.pvr.gz</p> <p><strong>启动Android模拟器时的Failed to allocate memory: 8问题</strong></p> <p>调整内存值,请求内存太大导致</p> <p><strong>api版本过低导致JAVA Symbol未定义问题</strong></p> <p>setEGLContextClientVersion undefined</p> <p>api8(andriod 2.2)后的版本, 才支持openGL es 2.0</p> <p><strong>自己做工程遇到的问题D:\Develop\RevWar\sdk\cocos2d-2.0-x-2.0.4\/cocos2dx/platform/android/jni/JniHelper.h:28:18: fatal error: string: No such file or directory</strong></p> <p>将cocos2dx例子中的Application.mk拷过来, 修改下内部名称即可</p> <p><strong>调试请尽量使用真机, 模拟器速度很慢</strong></p><strong> <p><strong></strong><strong>小米2默认只能管理文件, 无法用adb 连接, 因此需要安装驱动, USB驱动直接在插入电脑后的虚拟盘里找.. 这个太坑了..</strong></p></strong><strong> <p><strong></strong><strong>保证每次都能部署最新的程序</strong></p></strong> <p>请执行每次Clean, Build project, Debug.&nbsp; 真机上在需要时, 会弹出安装...</p> <p><strong>Android启动日志</strong></p> <p>带有ADT的Eclipse中有一个logcat窗口, 里面有系统及程序本身的日志, 可以做过滤,方便检查问题. 如需自己打日志, 可以使用cocos2dx中的LOGD宏来做, 原型是__android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)</p> <p>&nbsp;</p> <p><strong>Remark</strong>  </p><p>添加assert后, F5刷新后再编译<br />NDK build时,默认从工程的jni目录开始  </p><p>Andriod.mk的import 原则$(call import-module,模块名) 这里的模块名必须与目录名, 模块make file中的名称报纸一致  </p><p><strong>参考文章</strong>  </p><p><a href="http://www.cnblogs.com/ybgame/archive/2012/06/07/2540693.html">http://www.cnblogs.com/ybgame/archive/2012/06/07/2540693.html</a>  </p><p>发文时, Andriod Studio已经发布了一段时间, 虽然是测试版, 但将代表未来更方便的Andriod发布工具</p><img src ="http://www.cppblog.com/sunicdavy/aggbug/200904.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sunicdavy/" target="_blank">战魂小筑</a> 2013-06-09 17:55 <a href="http://www.cppblog.com/sunicdavy/archive/2013/06/09/200904.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>