win7+cocos2d-x2.1.3+NDK9r+cygwin+adt-bundle-windows-x86-20130729由VS2010WIN32移植到android

来源:互联网 发布:tengine php 安装配置 编辑:程序博客网 时间:2024/05/02 04:30

先吐槽一下,MB自己总以为当设计到一些高级NB算法的时候,就是纠结的时候,没想到一个项目移植花了老子将近一天的时间,才搞定,很久没记录心得了,今天就破例写写那些扯蛋的移植是碰到的问题。

 

环境就不说了,见标题,网上也大多是12年是的版本,各种不同,各种试用,MB就是各种不通过,终于老子磨来磨去,才最终生搞定了一个HelloWorld的移植。废话不多说,问题记录与解决。

 

1、当用create-android-project.bat来生成项目的时候,他会生成三个文件夹,proj.android、Classes、Recources;MB,注意这里有坑(不晓得网上的一些以前版本都不提到,害老子搞了这么久),因为是在cocos2d-x下建立的工程,会涉及到一个权限问题(这个后面还会出现),如果不更改这个.bat文件的内容,则由于权限不够导致你建立的proj.android工程不完整(如jni、bin、gen文件夹没有),那你在怎么去苦逼的看网上后面的移植操作都是白费,所以先要解决proj.android工程完整新的问题:

(1)修改create-android-project.bat里的内容:在文件开头加上cd /d %~dp0(直接转换到当前路径),并同时要以管理员的身份来运行此bat文件,这样得到proj.android文件夹的内容才完整。

 

2、在cygwin下执行./build_native.sh编译proj.android时候,问题多多,主要有两类:

(1)没有权限访问工程项目下的文件或文件夹,对于文件夹总是要点“继续”才能访问,这里有个办法,批处理grantRight.reg以取得所有权限来运行工程文件夹,则工程下的子文件就都有了访问权限,但是里面的文件还要设置

(2)对于文件,很简单,嫌麻烦的话直接替换掉Classes和Resources下的文件(对应Win32下的Classes和Resoures),对于proj.android下的文件,你找的到win32下的proj.android里对应的文件替换自然后,找不到的话就老老实实的用修改文件权限吧(工作量其实也不大,在./built_native.sh编译下,看哪些文件被permision denied就恢复权限就行了)。

(3)因为只是移植的helloWorld项目,所谓的Android.mk毛都不用动一个(除了其权限要修改),就OK;但如果你要移植自己写的项目的话,其.c/.cpp路径还是要修改的。

(4)在编译的过程中也许会碰到error: format not a string literal and no format arguments [-Werror=format-s]的错误,一般都是打印字符输出的错误,如_adnroid_log_print(ANDORID_LOG,  "cocos2d-x debug info", buf)要改为_adnroid_log_print(ANDORID_LOG,  "cocos2d-x debug info",  “%s”, buf)。

 

3、经过了这几部基本上就可以正常编译出so文件了,直接导入到Eclipse中,选择相应的虚拟模拟器,提示编译成功后就可以生成apk文件了,以内Eclipse对OpenGL ES2.0的不支持,在模拟器上看不到效果,如果编译成功那就拿着apk去真机上去体验吧。

 

NND,就这几点都把老子苦逼了快一天,也许有些哥们也正在苦逼中,不过苦逼不要紧,关键是不能老是苦逼,希望这片文章能给大家帮助。

干!

 

参考地址:http://www.cnblogs.com/lhming/archive/2012/06/27/2566467.html

原创粉丝点击