Cocos2d-x 創建Android工程和編譯+導入到Eclipse編譯

根據前兩篇文章,我們大概搭建完成了開發環境,現在來創建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 root

if not exist "%cd%\create-android-project.bat" echo Error!!! You should run it under cocos2dx root & pause & exit 2	



if 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		// 修改1

if not exist "%_CYGBIN%" echo Couldn't find Cygwin at "%_CYGBIN%" & pause & exit 4



:: modify it to work under your environment

set _ANDROIDTOOLS=g:\android\sdk\tools	// 修改2

if not exist "%_ANDROIDTOOLS%" echo Couldn't find android sdk tools at "%_ANDROIDTOOLS%" & pause & exit 5


:: modify it to work under your environment

set _NDKROOT=g:\cygwin\android-ndk-r8e	// 修改3

if not exist "%_NDKROOT%" echo Couldn't find ndk at "%_NDKROOT%" & pause & exit 6



:: create android project

set /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 7

echo "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 targets

set /P _TARGETID=Please input target id:

set _PROJECTDIR=%CD%\%_PROJECTNAME%



echo Create android project
mkdir %_PROJECTDIR%
echo Create Android project inside proj.android
call "%_ANDROIDTOOLS%\android.bat" create project -n %_PROJECTNAME% -t %_TARGETID% -k %_PACKAGEPATH% -a %_PROJECTNAME% -p %_PROJECTDIR%\proj.android
call "%_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 path
for /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%cd%"') do set _CURRENTDIR=%%A

:: Resolve ndk dir to cygwin path
for /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 us
endlocal & %_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編譯教程完成。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章