Cocos2d-x學習之建立Android工程和編譯

安裝好,相應的環境以後,咱們即可以開始建立cocos2d-x 的android 工程了android

進入cocs2d-x目錄,用文本編輯器打開create-android-project.bat(在windows 7上若是正常雙擊,可能建立時有些文件的權限不足,致使建立工程不成,能夠在此文件的第一行加上cd /d %~dp0,而後右鍵以管理員身份運行)windows

找到如下幾個定義:bash

複製代碼

  /   "�%\create-android-project.bat"  Error!!! You should  it under cocos2dx root &  &  2    
   "%~dpn0.sh"  Script "%~dpn0.sh"  found &  &  3 _CYGBIN=D:\cygwin\   "%_CYGBIN%"  Couldn't  Cygwin at "%_CYGBIN%" &  &  4 _ANDROIDTOOLS=E:\android-sdk-windows\   "%_ANDROIDTOOLS%"  Couldn't  android sdk tools at "%_ANDROIDTOOLS%" &  &  5 _NDKROOT=E:\android-ndk-r8-windows\   "%_NDKROOT%"  Couldn't  ndk at "%_NDKROOT%" &  &  6 /P _PACKAGEPATH=Please enter your package .  example: org.cocos2dx. /P _PROJECTNAME=  "�%\%_PROJECTNAME%"  "%_PROJECTNAME%" exists, please  another name &  &  7 "Now cocos2d-x suppurts Android 2.1-update1, 2.2, 2.3 & 3.0" "Other versions have not tested." "%_ANDROIDTOOLS%\android.bat" /P _TARGETID= _PROJECTDIR=�%\ "%_ANDROIDTOOLS%\android.bat" /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%~dpn0.sh"')   _CYGSCRIPT= /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "�%"')   _CURRENTDIR= /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%_NDKROOT%"')   _NDKROOT= & %_CYGBIN%\bash --login "%_CYGSCRIPT%" %_CURRENTDIR% %_PROJECTNAME% %_NDKROOT% %_PACKAGEPATH% "windows"

複製代碼

將_CYGBIN=設置爲cycgwin\bin安裝的的絕對路徑。app

將_ANDROIDTOOLS設置爲android sdk 的tools絕對路徑eclipse

將_NDKROOT設置爲android ndk的絕對路徑編輯器

修改完畢,保存後ui

雙擊create-android-project.bat開始工程建立嚮導spa

首先是輸入包名(建議按照android的命名規則),如com.android.test調試

而後輸入工程名稱(注意不要輸入已有的文件夾的名字,若是同名,會被覆蓋掉的),如testandroid,以下圖:code

wps_clip_image-15949

而後選擇target id,

wps_clip_image-14424

其會列出機器上安裝的全部版本的sdk,咱們選擇6,即2.3.2的sdk.

wps_clip_image-2448

進入g:\cocos2d-x目錄發現多了一個名爲testandroid的目錄,裏面包含三個目錄

wps_clip_image-19661

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

proj.android 是android的eclipse工程項目

Resources 資源文件

下來咱們開始編譯剛建立的testandroid項目

打開cygwin,進入到testandroid/proj.android目錄,輸入 ./build_native.sh 開始編譯以下圖:

wps_clip_image-16275

執行完畢,發現編譯出錯,以下圖:

wps_clip_image-20029

發現報的是文件 Permission denied 錯誤,考慮的是windows 7的環境,咱們看下jni/helloword/mai.cpp的文件的權限。

結果在進jni目錄時,邊報無權訪問了,以下圖:

wps_clip_image-22527

咱們無論,由於上面報的是具體文件(main.cpp)文件無權限,而非文件夾,說明編譯器已經能訪問到文件夾裏面了,觀察下main.cpp的文件權限:

wps_clip_image-6506

發現當前用戶(ming)都沒有讀寫的權限,編譯固然報錯了。咱們給它賦個徹底控制的權限,以下:

wps_clip_image-31043

點擊應用,和肯定,再次執行./build_native.sh

wps_clip_image-27868

仍是文件權限的問題,咱們按以前的方法,從新賦權一下,再次編譯,若是過程當中發現還有相似的問題,賦權便可,我爲了省麻煩,寫了個快速賦權的註冊表文件內容以下:

複製代碼

Windows Registry Editor Version 5.00="管理員取得全部權"
"NoWorkingDirectory"=""="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"="管理員取得全部權"
"NoWorkingDirectory"=""="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"="管理員取得全部權"
"NoWorkingDirectory"=""="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"

複製代碼

wps_clip_image-29719 以管理員身份運行這個文件後,就能夠爲windows 7右鍵添加取得全部權的菜單。以下圖:

wps_clip_image-3967

若是再次出現有訪問權限的問題,右鍵點擊下目錄,選擇管理員取得全部權便可。

最後編譯成功截圖以下:

wps_clip_image-5538

編譯成功以後,會直接在testandroid\proj.android\libs\armeabi這個目錄底下生成so文件(libgame.so)

編譯完畢,下來就是在eclipse裏面編譯成apk文件,並安裝運行一把。

一、將剛編譯完的工程導入到eclipse中。

以管理員身份打開eclipse(由於以前都是以管理員身份獲取的權限的,不然會出現編譯時權限有問題的),選擇FILE->New->Android Project,而後選擇以下:

wps_clip_image-17112

點擊next,選擇Build Target,以下:

wps_clip_image-25156

運行該工程,右鍵該工程,選擇Run as ->android application(從cocos2d-2.0-rc0a-x-2.0起,支持了open gl es2.0,默認的工程建立是要求運行於open gl es2.0上的,即目前模擬器還未支持,因此必須用真機去調試)

以下:

wps_clip_image-7431

相關文章
相關標籤/搜索