Rhodes を用いて,Ruby プログラムを Android で動かす
この Web ページで行うこと.
→ Ubuntu: Ubuntu での Android Studio についての Web ページ
sudo gem install rhodes
(64 ビット Linux のみ)rhodes-setup の実行前にファイルの調整
<エラーメッセージ>
古いバージョンの rhodes では 64 ビット Linux で「rake run:android」を実行すると、次のようなエラーメッセージが出る (2013/06時点).
rake aborted! Can't detect NDK toolchain path (corrupted NDK installation?)
<対策>
対策として、 gems/rhodes-3.5.1.12/platform/android/build/androidcommon.rb を探し、書き換える
変更前: $ndkhost = `uname -s`.downcase!.chomp! + "-x86"
変更後: $ndkhost = `uname -s`.downcase!.chomp! + "-x86_64"
◆ 設定例(Android Studio をインストール済みのとき)
rhodes-setup
<エラーメッセージ>
rhomobile で「rake run:android」を実行すると、次のようなエラーメッセージが出る. これは、Rhodes が Android 21 に対応しているが、Android 22 には対応していない(2013/06時点)ことに起因する
rake aborted! No such file or directory - /usr/local/android-studio/sdk/platform-tools/aapt
<対策>
対策として、appt と dx.jar について、次のような手順でシンボリックリンクを作成する.
◆ 手順例(Android Studio をインストール済みのとき)
※ 「android-4.2.2」のところは、実際のディレクトリ名に読み替えて下さい.
rm -f /usr/local/android-studio/sdk/platform-tools/aapt ln -s /usr/local/android-studio/sdk/build-tools/android-4.2.2/aapt /usr/local/android-studio/sdk/platform-tools/aapt mkdir /usr/local/android-studio/sdk/platform-tools/lib rm -f /usr/local/android-studio/sdk/platform-tools/lib/dx.jar ln -s /usr/local/android-studio/sdk/build-tools/android-4.2.2/lib/dx.jar /usr/local/android-studio/sdk/platform-tools/lib/dx.jar
<エラーメッセージ>
rhomobile で「rake run:android」を実行すると、次のようなエラーメッセージが出る. これも、Rhodes が Android 21 に対応しているが、Android 22 には対応していない(2013/06時点)ことに起因する
rake aborted! No such file or directory - ./apkbuilder
<対策>
対策として、次の手順で Android 21 の apkbuilder を使うことにする.
cd /tmp wget http://dl.google.com/android/android-sdk_r21.1-linux.tgz
tar -xvzof android-sdk_r21.1-linux.tgz sudo cp ./android-sdk-linux/tools/apkbuilder /usr/local/android-studio/sdk/tools sudo chown $USER /usr/local/android-studio/sdk/tools/apkbuilder
.
<エラーメッセージ>
rhomobile で「rake run:android」を実行すると、次のようなエラーメッセージが出る(2013/06時点).
rake aborted! undefined method `rm_f' for AndroidTools:Module
<対策>
ファイル lib/ruby/gems/1.9.1/gems/rhodes-3.5.1.12/platform/android/build/android_tools.rb を探し、その中で「rm_f」を含む行をすべて探し、コメントアウト(エラー回避のため)。ファイルは「find . android_tools.rb」で簡単に探せる
.
ファイル lib/ruby/gems/1.9.1/gems/highline-1.6.18/lib/highline.rb を探し、次のように書き換える。(エラー回避のため)。ファイルは「find . highline.rb」で簡単に探せる
◆ 作成手順例
端末で次のように操作
cd /var/tmp rhogen app hoge http://localhost:9292/hoge
android コマンドを使用
→ Ubuntu では「/usr/local/android-studio/sdk/tools/android」 で確認できる(Android Studio をインストール済みのとき)
→ Ubuntu では「/usr/local/android-studio/sdk/tools/android avd」 で確認できる(Android Studio をインストール済みのとき)
◆ 設定例(Android エミュレータ名は、実際にあわせて変更すること)
version: 2.3.3 minSDK: 10 emulator: hogeavd
◆ Ubutnu でのエディタ画面
Android SDK マネージャの起動は,Ubuntu では「/usr/local/android-studio/sdk/tools/android」(Android Studio をインストール済みのとき)
以下、設定手順と Ubuntu での画面を示す.
rake run:android の実行
cd /var/tmp/hoge rake run:android
実行画面の例
Android エミュレータが自動起動したところ
◆ rhomobile で rake run:android の実行でエミュレータが起動しないときは、 まずは、Android SDK マネージャを使い、必要なパッケージがインストールされているかを確認すること
◆ rhomobile で rake run:android を実行すると 「RET: Failure [INSTALL_FAILED_OLDER_SDK]」というエラーメッセージが出る場合がある。そのときは、 build.yml の minSDK の部分を確認する