Cocos2d-x v3.0正式版尝鲜体验【2】 Android平台移植

今天没事又尝试了下3.0正式版关于Android平台的移植,把新建的项目移植了下。过程仅用了十分钟左右,什么概念?!

好吧,事实上我想说,这个版本号真的移植非常轻松啊,只是还没加上其它东西,只是就眼下来说,真的非常方便。心理算是平衡些了,由于写代码总是想着要把CC去掉。。。


话不多说,来看看怎么移植到Android平台吧。体会下什么叫方便。


首先须要Android的NDK,SDK,Eclipse啥啥的就不提了。这些有过移植经验的就不多说了,关于NDK,最好去官网下载最新的版本号。


假设有自己新建的类文件。记得在“TestGameproj.androidjni”文件夹下“Android.mk”中加入下,这里我新建的一个项目,没有做不论什么改动,所以就不用加入了。

打开cmd,进入到android解决方式的文件夹下。即“cocos2d-x-3.0projectsTestGameproj.android”,你会看到这个文件夹下有个“build_native.py”文件。ok,我们就是须要它了。和曾经用cygwin编译的非常像,


输入build_native.py。回车,就開始编译了,非常轻松。


看到如上的图,就说明编译成功了。生成了.so文件。


回到cocos2d-x-3.0projectsTestGamecocos2dcocos2dplatformandroidjavasrc文件夹下,将org文件夹复制粘贴到android项目下的src文件下(路径TestGameproj.androidsrc),这个每次移植都是必须做的。不多解释了。


最后打开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)

假设出现找不到NDK。SDK,配置一下路径就好了。

原文地址:https://www.cnblogs.com/tlnshuju/p/7076156.html