今天没事又尝试了下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。回车,就開始编译了,非常轻松。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzMzNzE5ODMwMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
看到如上的图,就说明编译成功了。生成了.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)
假设出现找不到NDK。SDK,配置一下路径就好了。