Cocos2d-x學(xué)習(xí)之創(chuàng)建Android工程和編譯
執(zhí)行完畢,發(fā)現(xiàn)編譯出錯(cuò),如下圖:
發(fā)現(xiàn)報(bào)的是文件 Permission denied 錯(cuò)誤,考慮的是windows 7的環(huán)境,我們看下jni/helloword/mai.cpp的文件的權(quán)限。
結(jié)果在進(jìn)jni目錄時(shí),邊報(bào)無權(quán)訪問了,如下圖:
我們不管,因?yàn)樯厦鎴?bào)的是具體文件(main.cpp)文件無權(quán)限,而非文件夾,說明編譯器已經(jīng)能訪問到文件夾里面了,觀察下main.cpp的文件權(quán)限:
發(fā)現(xiàn)當(dāng)前用戶(ming)都沒有讀寫的權(quán)限,編譯當(dāng)然報(bào)錯(cuò)了。我們給它賦個(gè)完全控制的權(quán)限,如下:
點(diǎn)擊應(yīng)用,和確定,再次執(zhí)行./build_native.sh
還是文件權(quán)限的問題,我們按之前的方法,重新賦權(quán)一下,再次編譯,如果過程中發(fā)現(xiàn)還有類似的問題,賦權(quán)即可,我為了省麻煩,寫了個(gè)快速賦權(quán)的注冊(cè)表文件內(nèi)容如下:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT*shellrunas]
@=管理員取得所有權(quán)
NoWorkingDirectory=
[HKEY_CLASSES_ROOT*shellrunascommand]
@=cmd.exe /c takeown /f %1 icacls %1 /grant administrators:F
IsolatedCommand=cmd.exe /c takeown /f %1 icacls %1 /grant administrators:F
[HKEY_CLASSES_ROOTexefileshellrunas2]
@=管理員取得所有權(quán)
NoWorkingDirectory=
[HKEY_CLASSES_ROOTexefileshellrunas2command]
@=cmd.exe /c takeown /f %1 icacls %1 /grant administrators:F
IsolatedCommand=cmd.exe /c takeown /f %1 icacls %1 /grant administrators:F
[HKEY_CLASSES_ROOTDirectoryshellrunas]
@=管理員取得所有權(quán)
NoWorkingDirectory=
[HKEY_CLASSES_ROOTDirectoryshellrunascommand]
@=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
以管理員身份運(yùn)行這個(gè)文件后,就可以為windows 7右鍵添加取得所有權(quán)的菜單。如下圖:
如果再次出現(xiàn)有訪問權(quán)限的問題,右鍵點(diǎn)擊下目錄,選擇管理員取得所有權(quán)即可。
最后編譯成功截圖如下:
編譯成功之后,會(huì)直接在testandroidproj.androidlibsarmeabi這個(gè)目錄底下生成so文件(libgame.so)
編譯完畢,下來就是在eclipse里面編譯成apk文件,并安裝運(yùn)行一把。
1、將剛編譯完的工程導(dǎo)入到eclipse中。
以管理員身份打開eclipse(因?yàn)橹岸际且怨芾韱T身份獲取的權(quán)限的,否則會(huì)出現(xiàn)編譯時(shí)權(quán)限有問題的),選擇FILE->New->Android Project,然后選擇如下:
點(diǎn)擊next,選擇Build Target,如下:
運(yùn)行該工程,右鍵該工程,選擇Run as ->android application(從cocos2d-2.0-rc0a-x-2.0起,支持了open gl es2.0,默認(rèn)的工程創(chuàng)建是要求運(yùn)行于open gl es2.0上的,即目前模擬器還未支持,所以必須用真機(jī)去調(diào)試)
評(píng)論