今天没事又尝试了下3.0正式版关于Android平台的移植,把新建的项目移植了下,过程仅用了十分钟左右,什么概念?!好吧,其实我想说,这个版本真的移植很轻松啊,不过还没加上其他东西,不过就目前来说,真的很方便,心理算是平衡些了,因为写代码总是想着要把CC去掉。。。
话不多说,来看看怎么移植到Android平台吧,体会下什么叫方便。
首先需要Android的NDK,SDK,Eclipse啥啥的就不提了,这些有过移植经验的就不多说了,关于NDK,最好去官网下载最新的版本。
如果有自己新建的类文件,记得在“\TestGame\proj.android\jni”目录下“Android.mk”中添加下,这里我新建的一个项目,没有做任何修改,所以就不用添加了。
打开cmd,进入到android解决方案的目录下,即“\cocos2d-x-3.0\projects\TestGame\proj.android”,你会看到这个目录下有个“build_native.py”文件,ok,我们就是需要它了,和以前用cygwin编译的很像,
输入build_native.py,回车,就开始编译了,很轻松。
看到如上的图,就说明编译成功了,生成了.so文件。
回到\cocos2d-x-3.0\projects\TestGame\cocos2d\cocos\2d\platform\android\java\src目录下,将org文件夹复制粘贴到android项目下的src文件下(路径\TestGame\proj.android\src),这个每次移植都是必须做的,不多解释了。
最后打开Eclipse,导入项目,运行即可。
如果遇到这样的错误
[2014-04-26 12:31:48 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[2014-04-26 12:31:48 - TestGame] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
把“Android Dependencies”移除掉即可。
再次run as下,就可以在模拟器中看到这样很怀旧的画面了。
其实我们到时可以打开一下“build_native.py”文件看看,里面写了一下python脚本,比如这段就是复制资源,所以我们不需要拷贝Resources目录下的资源了。
def copy_resources(app_android_root): # remove app_android_root/assets if it exists assets_dir = os.path.join(app_android_root, "assets") if os.path.isdir(assets_dir): shutil.rmtree(assets_dir) # copy resources os.mkdir(assets_dir) resources_dir = os.path.join(app_android_root, "../Resources") if os.path.isdir(resources_dir): copy_files(resources_dir, assets_dir)