UbuntuでConnect IQ開発環境の構築

3.2.xのシミュレーターで日本語の曜日が正しく表示されないため、他のOSではどうなのか調べるため、Ubuntu(Linux)に環境を構築して試してみることにした。

その時のインストール手順で、Connect IQ SDKのページに掲載されている内容では構築できない点があったので、その対応方法を残す意味で手順をしたためてみる。

問題となったのは以下の3点。

  • SDKがダウンロードできない
  • SDKマネージャーが起動できない
  • Visual Studio Codeからシミュレーターが起動できない

ちなみに、環境構築後Ubuntuのシミュレーターで言語を日本語にしたところ、きちんと曜日が表示されてしまった。曜日が表示されないWindows版に何かしら問題があるのか、環境のせいなのか、また調べないといけない。

これがUbuntuでの実行結果。

今回の環境はVirtual Boxの仮想化環境で実現している。

SDKのインストール

SDKのダウンロード

ここが問題点の1番目。

Get the SDK | Connect IQ | Garmin Developers
Get the Garmin Connect IQ SDK to develop apps for Garmin wearable devices.

このページからSDKをダウンロードするのだが、デフォルトでインストールされているFirefoxで開いたら、以下の様になった。

本来であれば1の下にダウンロード用のクリックポイントが表示されるのだが、それが出ない。

これに関しては、別のブラウザ、今回はChromeをインストールしてそちらで上記ページを開くことで、ダウンロード用のクリックポイントが表示され、ダウンロードが可能となる。

ダウンロード後、適当なフォルダに解凍したファイルを配置する。

SDKマネージャー起動

2番目の問題点、SDKマネージャーが起動できない。

必要とされるdll(libwebkitgtk-1.0.so.0)が存在しないと出た。

こちらに関してはフォーラムに対応方法が掲載されていた。

Tutorial for Linux (Connect IQ 3.2.3) - Discussion - Connect IQ - Garmin Forums
A dedicated community for Garmin users to ask questions, provide answers, and share feedback.

フォーラム側のdebの記述にURLを示す「http://」が入っていないので注意。

これでdllがローディングされた。

次に問題となったのが、
Gtk-Message: 14:30:10.364: Failed to load module “canberra-gtk-module”
のエラー。まだモジュールが足りないようだった。

こちらは、
sudo apt-get install libcanberra-gtk-module
でモジュールの読み込みが可能。

これで、SDKマネージャーが起動可能となった。

SDKファイルのダウンロード

SDKマネージャーからのダウンロードは特に問題なく進んだ。
ダウンロードされたファイルは、~/.Garmin/ConnectIQの下に格納される。

Visual Studio Code環境の構築

Visual Studio Code – コード エディター | Microsoft Azure
ほぼすべての言語に対応し、任意の OS で動作する強力なコード エディター、Visual Studio Code を使用して、Azure で編集、デバッグ、デプロイを行います。

上記から、.debファイルをダウンロードし、それをクリックすることでVisual Studio Codeはインストール可能。
その後、Visual Studio Codeを起動し、Monkey C関連の機能拡張をインストールし、キーファイルの位置を環境に設定することで、プログラムのビルドは可能となった。

ここで3番目の問題。
Visual Studio Codeからシミュレーターが起動ができない。

Monkey C : Run App
を実行すると
Unable to connect to the simulator.
というエラーが出てしまう。

別途ターミナルからシミュレーターを起動すれば、起動されたシミュレーターにプログラムがロードされウォッチフェイスなどのが表示されるのだが、Visual Studio Codeからの起動ができなかった。

調べたところ、Monkey C機能拡張のシミュレーター起動の実装をちょっと変更することで起動することは可能となった。

monkey C機能拡張のout/runProgram.jsのrunProgramの以下の変更をした。

変更前

child_process_1.exec(path_1.basename(simPath), { cwd: path_1.dirname(simPath) });

変更後

child_process_1.exec(simPath);

なお、Virtual Box上のためか、それとも機能拡張の書き方のためなのか、シミュレーター起動まで30秒近くかかるようだ。

コメント

タイトルとURLをコピーしました