xcode程序移植到eclipsehtml
必要組件:java
1.macos gcc編譯器,若沒有,在xcode->preference->downloads中下載command line tools(在命令行下輸入g++,若顯示command not found 則沒有)android
2. android sdk :本機目錄爲 /Users/zhangyao/IDE/android-sdk-macosxc++
3.cocos2d-x:本機目錄爲 /Users/zhangyao/Desktop/cocos2d-x-2.1.1shell
4.ndk 本機目錄爲 /Users/zhangyao/Desktop/android-ndk-re8macos
地址:http://developer.android.com/tools/sdk/ndk/index.htmlxcode
選擇macos 64bitbash
5.cdt 若沒有 則在help->install new software中下載eclipse
Programming Languages->C/C++ Development Tools.ui
1.配置環境變量
終端中 輸入 sudo vi ~/.bash_profile
輸入i進入編輯環境 輸入如下內容:
export COCOS2DX_ROOT=~/Desktop/cocos2d-x-2.1.1/
export NDK_ROOT=~/Desktop/android-ndk-r8e/
export ANDROID_SDK_ROOT=~/IDE/android-sdk-macosx/
export PATH=$PATH:$ANDROID_SDK_ROOT/tools
按下esc鍵退出編輯
輸入:wq保存退出
2.在eclipse中建立項目(設項目名稱爲test)
cd Desktop/cocos2d-x-2.1.1
./create-android-project.sh
輸入工程標誌符com.cwa.test
選擇android版本號:6
輸入工程名:test
cd test/proj.android/
./build_native.sh
打開eclipse,選擇file->new->other->Android->Android Project from Existing code->next->Browse->選擇目錄至cocos2d-x-2.1.4/test/project.android->finish
選擇file->new->other->c/c++->convert to a c/c++ Project->next->選擇上面建好的工程->finish
至此工程test建立完成
3.配置工程屬性
右鍵工程名->properties
3.1 c/c++ Build 把use default build command的勾去掉,在build command中寫(其中test爲工程名):
bash ${workspace_loc:/test}/build_native.sh NDK_DEBUG=1 V=1
3.2 點開c/c++ Build 選擇Environment->add
name:NDK_ROOT
value:/Users/zhangyao/Desktop/android-ndk-r8e
3.3 c/c++ General->Path and Symbols->add
/Users/zhangyao/Desktop/android-ndk-r8e/sources/cxx-stl/system/include
所有修改完,點OK
在GUN C++中加入
/Users/zhangyao/Desktop/cocos2d-x-2.1.1/cocos2dx/include
/Users/zhangyao/Desktop/android-ndk-r8e/platforms/android-14/arch-arm/usr/include
在Android中 最好選擇最新的Android4.2.2(確保Andorid模擬機中已經下載好了4.2.2的API)
4.打開項目的AndroidMainfest.xml
把android:icon="@drawable/icon">一行改成android:icon="@drawable/ic_launcher">
android:minSdkVersion="8"
把8改爲14
android:minSdkVersion="14"
關閉AndroidMainfest.xml save changes選yes
在src/org.cocos2dx.lib/Cocos2dxActivity.java中
在// ...add to FrameLayout
framelayout.addView(this.mGLSurfaceView);
這句後面加上一句(若是沒有):
this.mGLSurfaceView.setEGLConfigChooser(8 , 8, 8, 8, 16, 0);
打開工程jni目錄下的Android.mk ,修改爲下圖所示
MY_CPP_PATH := $(LOCAL_PATH)/ \
$(LOCAL_PATH)/../../Classes/
MY_FILES_SUFFIX := %.cpp
My_All_Files := $(foreach src_path,$(MY_CPP_PATH),$(shell find $(src_path)/.))
My_All_Files := $(My_All_Files:$(MY_CPP_PATH)/./%=$(MY_CPP_PATH)%)
MY_CPP_LIST := $(filter $(MY_FILES_SUFFIX),$(My_All_Files))
MY_CPP_LIST := $(MY_CPP_LIST:$(LOCAL_PATH)/%=%)
LOCAL_SRC_FILES := $(MY_CPP_LIST)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
LOCAL_C_INCLUDES += $(shell ls -FR $(LOCAL_C_INCLUDES) | grep $(LOCAL_PATH)/$)
LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES:$(LOCAL_PATH)/%:=$(LOCAL_PATH)/%)
把cocos2d-x引擎的根目錄的cocos2dx/platform/android/java/src文件夾下org文件夾 複製到項目的src包(test/proj.android/src)下替換org文件夾
5.把xcode中全部的自建的類文件(包括.h和.cpp)複製到cocos2d-x-2.1.1/test/Classes
全部的資源文件複製到cocos2d-x-2.1.1/test/Resources
工程的圖標文件放在cocos2d-x-2.1.1/test/res下的文件夾中
至此工程配置完畢。
在對工程做出修改,好比加入/替換新的資源文件,class後,最好對工程clean一下,若是clean後還出現問題,能夠從新執行一下build_native命令。
Test 的 模擬器配置
最後,執行如下步驟能夠把xcode和eclipse相關聯,讓在xcode中作的更改,eclipse能夠自動作出更改。
1.打開Xcode中的test項目(項目名和eclipse中的相同)
選擇classes分組,點刪除,選擇Move to Trash
2.在工程中添加新group,還命名爲classes,右鍵classes->addFIles
而後把cocos2dx/test/classes中的類都添加回來,這樣eclipse和xcode就公用了這些文件,在一箇中作出更改,另外一個裏就會自動更改,以下圖:
另:1. Android聯網
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2.android中的R文件 ,是伴隨着加入資源等自動更新的
Android 在開發中會自動生成一個 R.java 文件 ,這個文件是自動生成的,最好不要去改。不過有時候這個 java 文件會跟咱們捉迷藏,在程序中 R.xx.xxx 會出現常常報錯現象。
1 對着工程點擊鼠標右鍵 選擇 Build Project,R.java 文件又回來。這樣R.xx.xxx 就能 X 的出來了。
若是不行 試用第二種 方法
2 選擇eclipse/myeclipse 的 clean 這樣R文件也會出現若是還不行 試用第三種 3 通過上面兩種方法都不行 使用絕招 從別的工程中拷貝一份R文件過來 而後string.xml裏隨便改動一下 便可更新R文件 若是還不行 試用第四種4 通過上面的3種方法都不行 說明咱們的工程有問題 好好檢查吧 好比resoure資源中的文件 命名,例result_main.xml,若是寫成Result_main.xml是錯誤的 須要所有小寫