轉(zhuǎn)載自:http://vincent-zheng.github.io/2015/06/24/cocos2dx-android-studio/前言
cocos2d-x進(jìn)行android時官方使用的是eclipse+ADT+NDK的模式,但是隨著Android Studio正式版的推出,越來越多的開發(fā)者正開始轉(zhuǎn)變他們的開發(fā)工具為Android Studio。
Android Studio相對于eclipse+ADT的優(yōu)勢
- Android Studio是基于Intellij的IDEA社區(qū)版進(jìn)行開發(fā)而成的,而IDEA則被譽(yù)為最智能的JAVA開發(fā)工具,Android Studio在智能提醒、預(yù)覽xml布局界面等功能方面相較于eclipse方面是比較優(yōu)勢的。
- ADT正在被谷歌官方邊緣化,谷歌方面已經(jīng)宣布不再對ADT進(jìn)行支持開發(fā)了,這將意味著很多bug得不到及時的修復(fù)、新功能難以添加上去。
- Android Studio具有更加優(yōu)秀的用戶界面。
使用Android Studio進(jìn)行cocos2d-x的開發(fā)
Android Studio的ndk配置
Android Studio使用ndk十分方便。
首先需要在local.properties文件中添加上ndk的根目錄。以下是我電腦上的配置:
1 2 3 4 5 6 7 8 9 10 11
| ## This file is automatically generated by Android Studio. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file should *NOT* be checked into Version Control Systems, # as it contains information specific to your local configuration. # # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. sdk.dir=C\:/Android/android-sdk-windows ndk.dir=C\:/Android/android-ndk-r10e
|
在gradle的編譯腳本,gradle.build中的android中添加以下語句
1 2 3 4 5
| sourceSets.main { jni.srcDirs = [] // 這里代表的是c++源碼的目錄,默認(rèn)不寫為src/main/jni下,因為在windows下直接使用gradle進(jìn)行編譯會出錯,因為這里將它制空,然后后面用其他腳本進(jìn)行編譯 jniLibs.srcDir 'src/main/libs' // 生成的.so的目錄 assets.srcDir 'src/main/assets' // assets目錄 }</span><br></pre></td></tr></tbody></table></figure>
|
完整的編譯腳本為:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.1.1' } } apply plugin: 'com.android.application'
repositories { jcenter() // flatDir{ // dirs 'libs' // } }
android { compileSdkVersion 22 buildToolsVersion "22.0.1"
defaultConfig { applicationId "com.vincent.twoplusone.app" minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionName "1.0" }
compileOptions { sourceCompatibility JavaVersion.VERSION_1_6 targetCompatibility JavaVersion.VERSION_1_6 } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
sourceSets.main { jni.srcDirs = [] jniLibs.srcDir 'src/main/libs' assets.srcDir 'src/main/assets' } }
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) // compile(name:'loginModule-release', ext:'aar') compile project(':loginModule') compile 'com.android.support:appcompat-v7:22.2.0' }
|
至此ndk配置完成。
使用Android Stduio開發(fā)cocos2d-x
首先用Android Studio和cocos的腳本分別創(chuàng)建一個新的項目,然后就是將cocos項目中對應(yīng)的文件拷貝到相應(yīng)的目錄下面。
cocos中的文件 | Android Studio項目下的文件(默認(rèn)根目錄為module根目錄) |
---|
Classes* | src\Classes* |
Resource* | Resource* |
proj.android\jni* | src\main\jni* |
proj.android\assets* | src\main\assets* |
proj.android\src* | src\main\java* |
proj.android\res* | src\main\res* |
proj.android\project.properties | src\main\java\project.properties |
最后因為Android Studio在window下直接使用ndk進(jìn)行編譯會因為一些全局變量的缺失導(dǎo)致失敗,需要使用在src\main 目錄下使用以下腳本進(jìn)行編譯(其中一些全局變量需要自行配制):
1
| ndk-build NDK_ROOT=%NDK_ROOT% NDK_MODULE_PATH=%NDK_MODULE_PATH% ANDROID_SDK_ROOT=%ANDROID_SDK_ROOT% NDK_TOOLCHAIN_VERSION=4.9
|