转载自:http://vincent-zheng.github.io/2015/06/24/cocos2dx-android-studio/前言
cocos2d-x进行android时官方使用的是eclipse+ADT+NDK的模式,但是随着Android Studio正式版的推出,越来越多的开发者正开始转变他们的开发工具为Android Studio。
Android Studio相对于eclipse+ADT的优势
- Android Studio是基于Intellij的IDEA社区版进行开发而成的,而IDEA则被誉为最智能的JAVA开发工具,Android Studio在智能提醒、预览xml布局界面等功能方面相较于eclipse方面是比较优势的。
- ADT正在被谷歌官方边缘化,谷歌方面已经宣布不再对ADT进行支持开发了,这将意味着很多bug得不到及时的修复、新功能难以添加上去。
- Android Studio具有更加优秀的用户界面。
使用Android Studio进行cocos2d-x的开发
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++源码的目录,默认不写为src/main/jni下,因为在windows下直接使用gradle进行编译会出错,因为这里将它制空,然后后面用其他脚本进行编译 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开发cocos2d-x
首先用Android Studio和cocos的脚本分别创建一个新的项目,然后就是将cocos项目中对应的文件拷贝到相应的目录下面。
cocos中的文件 | Android Studio项目下的文件(默认根目录为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进行编译会因为一些全局变量的缺失导致失败,需要使用在src\main 目录下使用以下脚本进行编译(其中一些全局变量需要自行配制):
1
| ndk-build NDK_ROOT=%NDK_ROOT% NDK_MODULE_PATH=%NDK_MODULE_PATH% ANDROID_SDK_ROOT=%ANDROID_SDK_ROOT% NDK_TOOLCHAIN_VERSION=4.9
|