Cocos2d-x 创建Android工程和编译+导入到Eclipse编译

来源:互联网 发布:舒畅和刘亦菲关系知乎 编辑:程序博客网 时间:2024/06/08 06:16

根据前两篇文章,我们大概搭建完成了开发环境,现在来创建Android工程和编译:

 

1、cygwin编译

进入cocos2d-x,用编辑器打开create-android-project.bat,修改三个路径:

@echo off:: This script is used to create an android project.:: You should modify _ANDROIDTOOLS _CYGBIN _NDKROOT to work under your environment.:: Don't change it until you know what you do.setlocal:: Check if it was run under cocos2d-x rootif not exist "%cd%\create-android-project.bat" echo Error!!! You should run it under cocos2dx root & pause & exit 2if not exist "%~dpn0.sh" echo Script "%~dpn0.sh" not found & pause & exit 3:: modify it to work under your environment set _CYGBIN=g:\cygwin\bin// 修改1if not exist "%_CYGBIN%" echo Couldn't find Cygwin at "%_CYGBIN%" & pause & exit 4:: modify it to work under your environmentset _ANDROIDTOOLS=g:\android\sdk\tools// 修改2if not exist "%_ANDROIDTOOLS%" echo Couldn't find android sdk tools at "%_ANDROIDTOOLS%" & pause & exit 5:: modify it to work under your environmentset _NDKROOT=g:\cygwin\android-ndk-r8e// 修改3if not exist "%_NDKROOT%" echo Couldn't find ndk at "%_NDKROOT%" & pause & exit 6:: create android projectset /P _PACKAGEPATH=Please enter your package path. For example: org.cocos2dx.example:set /P _PROJECTNAME=Please enter your project name:if exist "%CD%\%_PROJECTNAME%" echo "%_PROJECTNAME%" exists, please use another name & pause & exit 7echo "Now cocos2d-x suppurts Android 2.1-update1, 2.2, 2.3 & 3.0"echo "Other versions have not tested."call "%_ANDROIDTOOLS%\android.bat" list targetsset /P _TARGETID=Please input target id:set _PROJECTDIR=%CD%\%_PROJECTNAME%echo Create android projectmkdir %_PROJECTDIR%echo Create Android project inside proj.androidcall "%_ANDROIDTOOLS%\android.bat" create project -n %_PROJECTNAME% -t %_TARGETID% -k %_PACKAGEPATH% -a %_PROJECTNAME% -p %_PROJECTDIR%\proj.androidcall "%_ANDROIDTOOLS%\android.bat" update project -l ../../cocos2dx/platform/android/java -p %_PROJECTDIR%\proj.android:: Resolve ___.sh to /cygdrive based *nix path and store in %_CYGSCRIPT%for /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%~dpn0.sh"') do set _CYGSCRIPT=%%A:: Resolve current dir to cygwin pathfor /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%cd%"') do set _CURRENTDIR=%%A:: Resolve ndk dir to cygwin pathfor /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%_NDKROOT%"') do set _NDKROOT=%%A :: Throw away temporary env vars and invoke script, passing any args that were passed to usendlocal & %_CYGBIN%\bash --login "%_CYGSCRIPT%" %_CURRENTDIR% %_PROJECTNAME% %_NDKROOT% %_PACKAGEPATH% "windows"pause

将_CYGBIN=设置为cycgwin\bin安装的的绝对路径。

将_ANDROIDTOOLS设置为android sdk 的tools绝对路径

将_NDKROOT设置为android ndk的绝对路径

 

修改完毕,保存后

双击create-android-project.bat开始工程创建向导

 

首先是输入包名(建议按照android的命名规则),如com.android.hello

然后输入工程名称(注意不要输入已有的文件夹的名字,如果同名,会被覆盖掉的),如helloworld,如下图:

 

然后选择target id:机器上安装的所有版本的sdk,我们选择6,即2.3.2的sdk,按回车就会创建工程:

注意上图下面红色的框框,如果在上一篇文章最后的NDK环境变量配置成功就会出现这段文字。

 

进入g:\cocos2d-x目录发现多了一个名为helloworld的目录,里面包含三个目录

其中Classes:是存放默认工程的C++文件

proj.android 是android的eclipse工程项目

Resources 资源文件

 

接下来编译helloworld工程,打开cygwin,输入 cd /cygdrive/g/cocos2d-x/helloworld/proj.android进入helloworld/proj.android

 

输入./build_native.sh开始编译:

 

这个过程会有点久,大家请耐心等等。注意了,编译这个过程如果出现关于NDK_ROOT的错误,比如说找不到文件,都是因为NDK环境变量配置出错,笔者也在这个问题纠结了很久,最后是发现.bash_profile添加NDK路径时候不是用UE打开的,所以再一次强调必须用UE编辑器编辑。具体配置大家请看上一篇文章最后部分。

 

最后编译成功截图如下:

 

 

2、导入到Eclipse编译

 接下来就要把编译好的Android工程导入Eclipse里面了,经过Eclipse编译成功,则可以在手机上运行。

首先将helloworld里面的proj.android导入Eclipse中:

 

导入之后,如果出现以下错误,就是你没有把cocos2d-x的包导入Eclipse工程里面:

 

这时候选中工程右键 -> Build Path -> Link Source -> Browser,添加G:\cocos2d-x\cocos2dx\platform\android\java\src到项目中。


上述那种导入的方法并不是一劳永逸的,现在介绍一种一劳永逸的。

修改xxx\cocos2d-x\template\android下的 copy_file.sh :

在copy_src_and_jni 函数中添加 cp -rf $COCOSJAVALIB_ROOT/src $APP_DIR/proj.android 。

以后每次导入工程都会自动导入cocos2d-x所需的包。


运行该工程,右键该工程,选择Run as ->android application(从cocos2d-2.0-rc0a-x-2.0起,支持了open gl es2.0,默认的工程创建是要求运行于open gl es2.0上的,即目前模拟器还未支持,所以必须用真机去调试)。

 

到此,创建Android工程和编译,再导入到Eclipse编译教程完成。

 

原创粉丝点击