Cocos2D-X官網已經簡單介紹了如何在OS X環境下搭建Cocos2D-X v2.x和v3.x的指南。具體鏈接為:http://www.cocos.com/doc/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framework/native/v3/getting-started/setting-up-development-environments-on-mac-with-eclipse/zh.md
在此,我將進一步介紹如何將生產的項目用於Android Studio。
我們通過上述鏈接中所描述的過程生成完一個HelloWorld項目工程后可以先放在桌面或其它臨時文件夾里。然后,打開Android Studio應用,選擇“Import Non-Android Studio Project”,然后選擇HelloWorldDemo/proj.android所在目錄。然后點擊幾次Next之后即可進入正式項目工程界面。一般來說,剛進入界面會出現missing SDK的錯誤。由於Cocos2D-X默認生成的SDK API版本太小,因此分別進入helloWorldDemo目錄以及libcocos2dx目錄下的build.gradle文件中,將compileSdkVersion、targetSdkVersion設置到較高版本即可。總之,只要當前的Android Studio能認出來就行。
其次,我們把src/main目錄下的jni目錄給delete掉。可以直接在左側項目欄,右鍵jni,然后選擇Delete刪除之。由於這會使得Android Studio自動去編譯JNI,然而我們已經通過執行build_native.py把整個JNI都編譯好了,因此這一步可以放在外面做。
最后,我們點擊綠色三角箭頭即可運行這個HelloWorldDemo的應用了。
下面談談如何引入其它第三方庫的問題。首先是JNI的庫。我們知道,Cocos2D-X使用是C++作為主要開發語言,因此勢必哋跟JNI來打交道。如果我們獲得的第三方庫也是JNI的.so動態庫文件,那么我們可以在之前所生成的放在桌面或臨時文件夾中的項目工程文件中,把第三方.so文件先放在“proj.android/jni”目錄中。然后編輯Android.mk,在
LOCAL_STATIC_LIBRARIES := cocos2dx_static
這條語句下添加
LOCAL_LDLIBS += -L$(LOCAL_PATH)/ -lthird_party
假定,我們這里所使用的第三方動態庫文件名為libthird_party.so。通過編譯后,我們還需要將這些.so文件一起放到Android Studio項目工程下的HelloWorldDemo里的jniLib中。
然后,我們要添加其它C/C++源文件可以直接在LOCAL_SRC_FILES變量后通過+=操作符進行追加。
這里值得注意的是,Cocos2D-X默認僅編譯armeabi,如果有需要,可以編輯Application.mk,修改APP_ABI變量,往后追加想要支持的ABI。現在Cocos2D-X v3.4的SDK,ARMv8還不支持。
對於導入第三方jar庫的話也比較簡單。我們首先可以把第三方jar庫扔進Android Studio工程目錄中的HelloWorldDemo目錄下的jniLib目錄中,然后打開Android Studio工程,在左側項目欄里會把我們加入的jar文件顯示出來,我們右鍵它(如果有多個可以多選),然后選擇Add to Libs,將它們作為庫正式導入到工程中。這樣就OK了~
最后,如果要在工程中使用android.support庫,或者第三方庫中有對android.support庫的引用,那么得在左側工程欄里helloWorldDemo里的build.gradle的dependencies中添加如下語句:
dependencies { compile project(':libcocos2dx') // 這個是已有的 /** 添加對com.android.support的支持 */ compile 'com.android.support:appcompat-v7:21.0.3' }
對於其它資源文件可以合並到res目錄下;對於要增加特殊的用戶訪問權限的,直接編輯AndroidManifest.xml即可。