Log in

metaio SDK で AR してみた - サンプルをビルドしてみる

目次へ戻る

metaio SDK のサンプルをビルドしてみます。
metaio SDK をインストールすると、デフォルトだと “%USERPROFILE%\Documents\metaio\metaio SDK - 4.5.2” に入ります。

  • _Android\metaioSDK が Android 用 SDK の本体です。当然これは必ず必要です。libs の下にライブラリーがありますし、src の下のソースコードもビルドに使います。
  • サンプルは _Android\Examples_SDK です。この下の Example がチュートリアルがそのまま入っているもっとも基本的なものという感じです。
  • tutorialContent_crossplatform ディレクトリーにはチュートリアルサンプルが使用しているコンテンツ(画像など)が入っています。

変更とかもしたいので、私はこれら 3つのディレクトリーを他のところにコピーして Eclipse で読み込んでいます。

Eclipse でサンプルプロジェクトの読み込み

Eclipse を起動してメニュー「ファイル」-「インポート」で「一般」の「既存プロジェクトをワークスペースへ」をクリックして「ルート・ディレクトリの選択」に Example ディレクトリーを選択してインポートします。(上に書いたようにこの Example ディレクトリーはコピーしてきたディレクトリー)
もう一度同じようにインポートで今度は metaioSDK ディレクトリーをインポートします。

Example_Project

とりあえずこんな感じでワークスペースに metaioSDK プロジェクトと SDK_Example プロジェクトが読み込めました。この時点だとエラー出てますが。

metaioSDK プロジェクトを右クリックして「プロパティー」を開いて「Android」でターゲットとするバージョンを選んでやります。私は Android 2.2 を選んでます。
SDK_Example プロジェクトも右クリックで「プロパティー」を開いて「Android」でターゲットを指定します。また、私はディレクトリーをコピーするときに metaioSDK ディレクトリーとの相対位置関係を変えてしまったので、「ライブラリー」のところで metaioSDK プロジェクトを追加し直しました。同様に tutorialContent_crossplatform も相対位置関係を変えたので「リソース」の「リンクされたリソース」の「リンクされたリソース」タブで assets が無効なロケーションになってしまっていました。これを正しいパスに編集してやります。

Android 2.2(Froyo) でビルドできるようにする

metaio SDK 自体は Android 2.2(Froyo) (API Level 8)以上をサポートとあるんですが、Android 2.2 をターゲットにしてビルドしようとするとエラーが出てビルドできません。
とりあえず、以下の修正をするとビルドできるようになります。もちろん、動作の保証はできませんが。

metaioSDK を(無理やり)Android 2.2 でビルド

  • ARViewActivity.java と ARViewFragmentActivity.java で android.hardware.Camera.CameraInfo を import して使っているところ。CameraInfo は API Level 9 からだから使えない。使ってるのは CameraInfo.CAMERA_FACING_BACK だけでこれは定数の 0 だから、import を止めて自前で 0 と書いちゃえばいい。
  • btn_nav_bg_selector.xml の android:state_activated を使っているところ。state_activated は Honeycomb の API Level 11 かららしい。どう対応するのがいいかわからないが、とりあえずこの行をコメントアウト。

 

SDK_Example を(無理やり)Android 2.2 でビルド

  • res/values-v11 と res/values-v14 で使われている Theme.Holo.Light、Theme.Holo.Light.DarkActionBar が Android 3 以上らしい。なので削除。
  • res/layout/webview.xml の android:layerType が API Level 11 以上なので削除。
  • AndroidManifest.xml の android:configChanges の screenSize(Level 13)、smallestScreenSize(Level 13)、uiMode(Level 8) を削除。同様に android:hardwareAccelerated がエラーになるので削除。

こんな対応でいいのかどうかはなはだ怪しいですが、とりあえずこれでビルドできるようにはなります。

あとは、メニュー「実行」-「デバッグの構成」で「Android アプリケーション」を右クリックして「新規」して、実行するプロジェクトやターゲットを指定すれば OK です。
これで Android 2.2 で metaio SDK サンプルが動きました!
チュートリアルのそれぞれの意味は英語ですが metaio Developer Portal の SDK – Tutorials にあります。tutorialContent_crossplatform ディレクトリーの下にある metaioman_target.png などがマーカーですので、これをカメラで写すと metaioman が出てきたりします。
試しに Tutorial 1 を Android 2.2 (IS04)で動かしてみたものをスクリーンキャプチャしてみました。

Tutorial1

なお、一部のチュートリアルではアプリがエラーで落ちる場合があります。試したのがだいぶ前のことであまり覚えてませんが、確か Android 2.2 では obj ファイルに対応できてなかったりとかそういったことが原因だったんじゃないかと思います。

目次へ戻る