Cocos2d-x And Gradle - 使用Gradle编译Cocos2-dx - 林国锋个人博客
ほとんどこれを日本語にしただけなので、中国語読める人はこっち読んだほうが早い。
前提
Gradle使えるようにする
brew update
brew install gradle
gvm使うのがオシャレらしいけど、カジュアルな感じにbrewを使う。
gradle設定する
cd TestApp
gradle init
すると、必要なファイルが生成される
Cocos2d-xのandroidプラグインをgradleライブラリにする
cocos2d/cocos/2d/platform/android/java/build.gradle
を作って、コピペする。
apply plugin: 'android-library' dependencies { compile fileTree(dir: 'libs', include: '*.jar') } android { compileSdkVersion 14 buildToolsVersion "19.1.0" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } } }
compileSdkVersionとかは自分のアプリに合わせて変える。 buildToolsVersionは、その時の最新バージョン指定したほうが良い。*1
ビルドスクリプトを書く
gradle init
で生成されたbuild.gradle
に設定を書いていく
project.ext { androidRoot = 'proj.android' env = System.getenv() } buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.10.+' } } apply plugin: 'android' repositories { mavenCentral() } dependencies { compile fileTree(dir: androidRoot + '/libs', include: '*.jar') compile fileTree(dir: androidRoot + '/libs/armeabi', include: '*/so') compile project(':cocos2d:cocos:2d:platform:android:java') } task ndkBuild(type: Exec) { commandLine androidRoot + '/build_native.py' } android { compileSdkVersion 14 buildToolsVersion "19.1.0" defaultConfig { minSdkVersion 9 targetSdkVersion 14 } sourceSets { main { manifest.srcFile androidRoot + '/AndroidManifest.xml' java.srcDirs = [androidRoot + '/src'] resources.srcDirs = [androidRoot + '/src'] aidl.srcDirs = [androidRoot + '/src'] renderscript.srcDirs = [androidRoot + '/src'] res.srcDirs = [androidRoot + '/res'] assets.srcDirs = [androidRoot + '/assets'] jniLibs.srcDirs = [androidRoot + '/libs'] } } }
ビルド設定を書く
gradle init
で生成されたsettings.gradle
に上で書いた2つの設定を読み込ませる。
include ':cocos2d:cocos:2d:platform:android:java' include ':proj.android' rootProject.name = 'TestApp'
ここまで書いたらgradle ndkBuild
と、gradle標準のビルドコマンドが実行できるようになる。
proj.androidの中でgradle init
したほうがオシャレっぽいけど、directoryさかのぼってincludeする方法が分からなかったのでこんな感じになってる。方法がわかったら編集する。
あと、build_native.py使わないでビルドしたいので、別の機会にやる。
参考
- Gradle+AndroidプラグインでNDKプロジェクトをビルドする - やらなイカ?
- 署名の設定とかも書いてある
*1:バージョン指定しないでOKにしたいけど方法が分からない