Edited at

Android StudioでopenFrameworksをビルドする

Android アプリ開発初心者です。Eclipse でのビルドが上手く行かなかったので Android Studio を試してみました。


実行環境


  • OSX YOSEMITE 10.10.2

  • Android Studio 1.1.0 Build #AI-135.1740770

  • JRE 1.7.0_79-b15 x86_64

  • Android SDK Android 5.1.1(API22)。Android Studio と一緒に自動的にインストールされました。

  • Android NDK r9d

  • OF 0.9.0

  • Emulator Nexus_5_API_21_x86

  • Nexus7 Android Version 4.4.2


参考サイト

openFrameworks の公式チュートリアルに従いました。

openFrameworks/android.md at master · openframeworks/openFrameworks

以下、上記チュートリアルを適当に読み進めつつ躓いた箇所などを記します。


概要

openFrameworks と Android Studio は超簡単です。基本的には以下のステップになります。


  • Android Studio と Android SDK のインストール

  • Android NDK のインストール(r10b 以下)

  • openFrameworks のダウンロード

  • プロジェクトのインポート

  • NDK の設定

  • ビルド&ラン

  • サンプルを元にプロジェクトを作る


Android Studio と Android SDK のインストール

Arduino Studio を http://tools.android.com/download/studio/stable からダウンロードします。1.0 以上が必要です。最近の SDK が一緒にインストールされますが、Tools ➞ Android ➞ SDK Manager で使用する SDK のバージョンをカスタマイズできます。

SDK が付属してこなかった場合は、http://developer.android.com/sdk/index.html からダウンロードすることができます。


  • Android NDK のインストール(r10b 以下)

r10c だと不具合があるため、r10b を使用してください。今回はチュートリアルにリンクがある r9d を使用しました。 http://dl.google.com/android/ndk/android-ndk-r9d-darwin-x86_64.tar.bz2


openFrameworks のダウンロード

http://github.com/openframeworks/openFrameworks からダウンロードします。俺は http://openframeworks.cc/download の方に行ってdownload openFrameworks for eclipse をダウンロードしてしまい半日ほど無駄にしてしまいました。


プロジェクトのインポート

Android Studio の Welcome Screen で Import Project、または File ➞ Import Project を選択し、libs/openFrameworksCompiled/project/android ディレクトリの settings.gradleを指定します。色々言ってきますが全部OKでプロジェクトのセットアップを待ちます。

この時点でNDKのエラーが出ますが、次のステップで。


NDK の設定

同様にlibs/openFrameworksCompiled/project/android ディレクトリのlocal.propertiesを以下のように修正します。

ndk.dir=/path/to/the/ndk

俺の場合こんな感じです。

ndk.dir=/Users/***/***/android-ndk-r9d

local.propertiesを保存して Android Studio の Tools ➞ Android ➞ Sync Project with Gradle Files を選択してプロジェクトと再同期を行います(自分の環境では"Try Again" も "Gradle project sync failed"表示されなかった気がします)。

ビルド中に、何度か Android SDK が足りないと言われましたが、その度同意してインストールを繰り返せば OK かと思います。


ビルド&ラン

androidEmptyExampleの横にある再生ボタンを押して、うまく行くとビルドされ、Android デバイスやエミュレータで再生されるはずです。再生されたなら openFrameworks の設定は完了です。

実機テストに関しては以下のページを参考にさせて頂きました。

Android Studioで実機デバッグするには? | iDEA CLOUD/dev


サンプルを元にプロジェクトを作る

examples/androidにある androidEmptyExampleフォルダをコピーして、apps の中にサブディレクトリを作ってペースト(サンプルと同じディレクトリ構成にすること)。build.gradleファイルをandroidEmptyExampleからコピーしてペースト。libs/openFrameworksCompiled/project/androidにあるsettings.gradleを以下のように修正します。

// your projects go here

include 'examples:android:androidEmptyExample'
// Add your own projects like this:
// includeFlat 'apps:myApps:myAwesomeApp'
include 'apps:myApps:myFirstApp'

俺の環境ではincludeFlatという書き方ではビルドできませんでした。

まだ2、3個サンプルを試しただけですが、今のところ大丈夫そうです。

【4/22追記】

以下の4つのサンプルは Emulator、Nexus7 ともにデバイス上で再生できませんでした。API のせいかな?


  • androidCameraExample

  • androidOpenCVFaceExample

  • androidOpenCVExample

  • androidVibratorExample

androidSwipeExample は IDE 上でエラーになって転送ができませんでした。