Hello!大家好,歡迎來到互擼娃的博客。這是我的第一篇博文。今天教大家怎麼把2dx的win32項目交叉編譯成android項目並最終編譯成apk。我會講的很詳細。並註明我遇到的一些錯誤。我所用的cocos2d-x版本是2.1.4。
需要的所有軟件:VS2010(或2008,2012等)、eclipse+ADT插件+androidSDK(這三個可以單獨下載也可以直接到谷歌開發者頁面下載整合包)、androidNDK、Cygwin
注:eclipse+ADT插件+androidSDK 如果是單獨下載如何配置請看:這裏
androidNDK直接下載下來解壓。
如何安裝Cygwin請看這裏。安裝過程有點長。。
好了,我們繼續。首先用VS編譯好項目。
(1)創建新空的android項目。
進入到cocos2d-x引擎文件夾下。找到create-android-project.bat這個東西。用它來創建新的空的android項目。但是首先要修改下它。用記事本或其他的打開它。
修改完這三處後,雙擊運行。
之後會彈出這個:
你需要在後面輸入項目包名 比如 com.example.test 然後回車,接下來出現
接着輸入項目名字 如:HelloWorld 然後回車。
然後出現這個,在id 處填上數字 如 填2 就帶表項目最低支持andoroid 2.2版本。
好了,這時你會在cocos2d-x目錄下看到剛剛建成的android空項目。
我建的是myTest
打開後會看到
說明:
Classes裏存放win32你要編譯的項目的cpp文件。
pro.android裏存放的是android的項目文件
Resources裏存放的資源文件
(2)編譯文件
首先你要把win32的項目中你要編譯的所有的.cpp和.h文件全部移到myTest\Classes目錄中。
然後把資源圖片音樂什麼的都移動到myTest\Resources目錄下。
然後還要修改一個地方:
進入到 myTest\proj.android\jni下,用記事本打開Android.mk。
修改如下:
保存。
好了,接下來打開cygwin編譯文件。但在此之前先配置兩個環境變量吧!
右鍵計算機-屬性-高級管理-環境變量-添加系統變量
名:NDK_ROOT 值:D:\soft\android-ndk-r8e (你的ndk目錄)
名:COCOS2DX_ROOT 值:E:\code\cocos2d-2.1rc0-x-2.1.2-hotfix\cocos2d-2.1rc0-x-2.1.2\cocos2dx (引擎目錄)
來到你的cygwin目錄下,打開Cygwin.bat
接着輸入 cd E:\code\cocos2d-2.1rc0-x-2.1.2-hotfix\cocos2d-2.1rc0-x-2.1.2\myTest\proj.android 回車。也就是進入你的android項目的pro.android目錄下。
接着輸入 ./build_native.sh 這就啓動了build_native.sh 這時就可以編譯了。過程也比較慢。
----------------------------------------------------------
注:雖然之前已經配置了ndk的目錄,但是我運行 輸入./build_native.sh後報錯提示我 未找到ndk! 我在網上找到了解決辦法:
用記事本打開build_native.sh。修改如下
然後繼續運行./build_native.sh吧。
----------------------------------------------------------
備註:第一次成功了。第二次在進行這一步時。出錯了。
出現
cygwin warning:
MS-DOS style path detected: D:/Slickedit/WorkSpace/Debug/Demo4Cpp.o
Preferred POSIX equivalent is: /cygdrive/d/Slickedit/WorkSpace/Debug/Demo4Cpp.o
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
----------------------------------------------------------
(3)eclipse導入項目(4.22版本的eclipse奧)
好了工作接近尾聲了。
打開eclipse。左邊空白處右鍵鼠標-import-導入已存在的項目 還是看圖吧:
然後點擊Browse選擇android項目路徑,最都點擊finish就行了。
導入項目後基本不會出錯。但我的項目出了兩個錯。
第一個是 src裏沒有cocos2dx.lib包 。可以手動複製進去。 打開cocos2dx引擎目錄 進入cocos2dx\platform\android\java\src下。把裏面的org文件夾全複製到eclipse的src裏去就行了。
第二個是AndroidMainifest.xml裏一處。
以前是icon。改成ic_launcher。因爲圖標文件就叫這個。
好了。
最後!
右鍵點擊創建工程是輸入的工程名對應的java文件,選擇RunAs->Run Configurations進入運行設置。在彈出對話框中雙擊AndroidApplication選項,在Android選項卡選擇好工程點擊Run按鈕即可。由於真機可用的*.apk文件將生成於<工程路徑>/Android/bin路徑下。
把apk直接按到手機上吧。
總算結束了。只想說一句話,我去年買了個表。