如果对命令行望而生畏,我们可以借助于安装有ADT插件的Eclipse工具实现交叉编译。
使用Eclipse进行交叉编译,首先需要将要编译的工程导入到Eclipse的Workspace中,Workspace是多个工程的集合。具体步骤是启动Eclipse后,选择菜单File→New→Project,弹出如图21-18所示的新建工程对话框,选择Android→Android Project from Existing Code。
在新建工程对话框中点击Next按钮,弹出如下图所示的导入工程对话框,点击Browse按钮,弹出后面所示的选择目录对话框,注意选择目录是:“<游戏工程路径>\proj.android”,在这个目录下有创建Eclipse的Android工程所需要的文件。
选择好目录后,点击确定按钮关闭对话框,回到导入工程对话框,如下图所示,在Root Directory已经有内容了。如果没有报错说明选择工程成功了。注意我们不要选中Copy projects into workspace选项。选择完成后点击Finish按钮。
然而点击Finish后,Eclipse导入并编译工程,编译完成时候会发现有很多错误,如下图所示。经过研究不难发现引起这些错误的原因是,找不到Cocos2d-x在Android平台的Java类,这些类位于:<游戏工程路径>\cocos2d\cocos\2d\platform\android\java目录下,我们要么把这个目录下的Java文件拷贝到当前工程的src目录,要么导入Cocos2d-x Android Java类库工程。
导入Cocos2d-x Android Java类库工程的操作步骤与前面导入游戏工程是类似的,选择的路径是:<游戏工程路径>\cocos2d\cocos\2d\platform\android\java。如下图所示是成功导入的libcocos2dx工程。
提示 很多读者会问,只是导入libcocos2dx工程,游戏工程MyGame就可以找到需要的Java类文件吗!这是因为在MyGame工程中有一个project.properties文件,在这个文件中的android.library.reference.1=../cocos2d/cocos/2d/platform/android/java设置项描述了两个工程之间的依赖关系。
两个工程在Eclipse里编译成功,并不代表这游戏工程已经进行了交叉编译,我们需要执行<游戏工程路径>\proj.android\build_native.py进行交叉编译生成.so文件。执行build_native.py可以通过DOS终端进入所在目录build_native.py执行,可以在Eclipse里双击build_native.py执行,执行过程如下图所示。
如果执行build_native.py交叉编译成功后,我们还需要在Eclipse中选择MyGame工程,按F5键刷新工程,否则在工程中看不到如下图所示libcocos2dcpp.so文件。
交叉编译成功就可以打包运行了,选择MyGame工程,右键菜单Run as → Android Application,然后选择要打包和运行的模拟器或Android设备就可以了。