サイトのトップへ戻る

libGDX ドキュメント 日本語訳

サイト内検索

コマンドライン上でのGradle の実行

この記事では、コマンドラインからアプリケーションを実行して他のプラットフォームで配布するためにアプリケーションをパッケージ化する方法を説明します!



目次




ANDROID_HOMEを設定する

何かコマンドラインウィザードを実行する前に、まずは有効なandroid SDKへの参照をANDROID_HOME 環境変数に設定する必要があります。

Windows: set ANDROID_HOME=C:/Path/To/Your/Android/Sdk

Linux, Mac OS X: export ANDROID_HOME=/Path/To/Your/Android/Sdk

別の方法として、 sdk.dir /Path/To/Your/Android/Sdkという内容の "local.properties"という名前のファイルを作成することもできます。



プロジェクトを実行する

Gradle を使うことでコマンドライン上から簡単にプロジェクトを実行できます。 gradlew コマンドを使って対象となるプラットフォームを指定し、そのプラットフォーム用のコマンドを実行するだけです。

デスクトップ - Android - iOS - HTML



デスクトッププロジェクトを実行する

gradlew desktop:run

このコマンドを使うとコアプロジェクトとデスクトッププロジェクトがコンパイルされ、デスクトップスターターが実行されます。 この作業ディレクトリはandroidプロジェクトの assets フォルダーです!



Android プロジェクトを実行する

gradlew android:installDebug android:run

このタスクはあなたのアプリケーションのデバッグAPKを作成し、一番目に接続されているエミュレータや端末にインストールし、メインactivityを起動します。 The process is split into two tasks because the Android Gradle plugin lets you create multiple flavors of your app (e.g. debug as above, release, ...). 詳細情報については Android Gradle プラグインのサイトを参照してください。



iOS プロジェクトを実行する

iOS シミュレータ上や端末上で実行する前に、 あなたの無料 RoboVM キーを有効化しているか確認してください。 端末上で実行する場合は、アプリを配置できるように端末のプロビジョニングを行う必要があります!

gradlew ios:launchIPhoneSimulator

gradlew ios:launchIPadSimulator

gradlew ios:launchIOSDevice

最初の二つのコマンドではiPhoneシミュレータや iPad シミュレータを起動させ、最後のコマンドでは接続された設定された端末上でiosプロジェクトを起動させます 端末の設定方法についてはAppleのドキュメントを参照してください。初回のiOSプロジェクトの実行では、コンパイルに長く時間がかかるので注意してください。 以降の実行時にはコンパイル時間はかなり短くなります!



HTML プロジェクトを実行する

gradlew html:superDev

このコマンドではあなたのアプリをJava コードをJavascriptにコンパイルする GWT Super Dev Modeで起動し、javaコードを直接ブラウザ上でデバッグできるようになります。 シェル上に Next, visit: http://localhost:9876というメッセージが表示された場合は、ブラウザを開いてそのアドレスへ移動してください。 開いたページをあなたのブラウザのブックマークバーにドラッグし、"Dev Mode On" ブックマークとして保存してください。 次にhttp://localhost:8080/htmlを開きます。このページでは、あなたのアプリケーションがブラウザ上で動作しています! コアプロジェクトのJavaコードを変更した場合は、先ほどのブックマークをクリックして "Compile"をクリックするだけです。 すると変更が即座に反映されます。ゲーム素材を変更した場合は、上記のコマンドを使ってサーバを再起動する必要があります。



プロジェクトをパッケージする

全てのフォーマットはそれぞれ異なった配布形式を持っています。この項目では、Gradleを使った各回配布形式の作成方法を説明します。

デスクトップ - Android - iOS - HTML



デスクトップ向けのパッケージ化

gradlew desktop:dist

このコマンドでは実行可能なJARファイルを作成してdesktop/build/libs/ フォルダに配置します。 このファイルには必要な全てのコードとandroid/assetsフォルダ内の全てのゲーム素材が含まれており、ダブルクリックかコマンドライン上からjava -jar jar-file-name.jarと実行して起動できます。 プレイヤーはこれが動作するためのJVM をインストールしなければなりません。 この JAR ファイルは Windows、 Linux 、 Mac OS X上で動作します!

JARと一緒にJVMもパッケージ化して配布したい場合は、packr toolを使うことができます! これを使うと、ダウンロードサイズが23MB-30MB以上増える代わりにプレイヤーはJVM をインストールする必要がなくなります。



Android向けのパッケージ化

gradlew android:assembleRelease

このコマンドでは、署名なし APK ファイルを android/build/outputs/apk フォルダに作成します。 このAPKのインストールや公開をする前に、 署名する必要があります。 上記のコマンドでビルドされたAPK は既にリリースモードになっているので、リンク先ページにあるkeytool とjarsignerの手順を行えば完了です。 身元不明のアプリのインストールが許可されているAndroid 端末にインストールできます。



iOS向けのパッケージ化

gradlew ios:createIPA

このコマンドでは、Apple App Storeに公開するためのIPA ファイルを ios/build/robovmフォルダに作成します。 app store でのアプリ公開に記載されているAppleのガイドラインに従ってください。



Web向けのパッケージ化

gradlew html:dist

このコマンドではあなたのアプリをJavascript にコンパイルし、出力された Javascriptファイル・ HTMLファイル・ゲーム素材のファイルを html/build/dist/ フォルダに配置します。 このフォルダの中身を Apache や Nginxのようなウェブサーバにアップする必要があります。 このコンテンツは他の静的HTML/Javascript サイトのように扱います。Java や Java Applets 関連のものは含まれていません!

Python がインストールされている場合は、html/build/dist フォルダ内で以下のコマンドを実行することで公開するゲームをテストできます。:

Python 2.x

python -m SimpleHTTPServer

Python 3.x

python -m http.server 8000

ブラウザで http://localhost:8000 を開いてプロジェクトの動作確認を行えます。

Node.js を使用している場合は、npm install http-server -g を実行してからhttp-server html/build/distを実行して、ブラウザで http://localhost:8080を開きます。参考ドキュメント

PHP を使用している場合は php -S localhost:8000 と入力してブラウザで http://localhost:8080を開きます。 参考ドキュメント



デバッグと一般的な問題



Gradle タスクの失敗

gradle起動時にビルドやリフレッシュが失敗した場合、詳細な情報を取得するには--debug 引数を追加した同じコマンドを再度実行します。 例:./gradlew tasks --debug。 これによりスタックトレースが提供され、なぜgradle が失敗したのかを調べるためのより多くの情報を得られます。



一般的な問題

(確認済み) AVG - gradlew desktop:dist を実行する場合、アンチウィルスソフトによってこのコマンドがエラーになることがあります。あなたのアンチウィルスソフトにアクセス許可の例外を追加してください。



プロジェクトをデバックする



Tweaking

You may be like me and wish to have the output jar from the dist task. Gradle seems to name it as the name of the directory and a version number, which is in my case, desktop-1.0. You may also wish to have each build have a unique version/build date of some kind, do as follows:

ルートプロジェクトの build.gradle、以下を追加します:

def getDate() {
    def date = new Date()
    def formattedDate = date.format('yyyyMMddHHmmss')
    return formattedDate
}

(at top level)

Within allprojects{}, add: 'version = "0.1-build-" + getDate()'

Within the desktop target add this within task dist(type: Jar) { }...

'baseName = "myproject"'

I'm sure there are better ways, but it took me a while to get together that info and then get it to work/figure out where to put it. You will now have a jar file in your desktop/libs, named something like 'project-0.1-build-20150120033412.jar' which makes distribution a lot easier and more trackable, less conflicts etc.