23
22

More than 5 years have passed since last update.

Qt5.1ベータ版を使ってAndroidアプリを作成してみた

Last updated at Posted at 2013-05-17

ご存知のように、Qt(キュート)はクロスプラットフォームのGUIフレームワークです。
昔はGUIアプリケーションが作れるツールキットと位置づけでしたが、最近はJavaScriptエンジン
やHTMLレンダリングエンジンまで組み込まれてきており、Visual Studioにも劣らない開発環境と
言っても過言ではないように思います。

このQtで作ったアプリがAndroidでも動くようになるということで、先日リリースされたベータ版で
ボタン1個だけのアプリを作り、Android端末で動かしてみました。なんとか動いたので投稿します。

一部不安定なところもありますが、正式対応版で修正されることを期待しましょう。
下記の内容は、正式版では変わる可能性があります。

環境構築

環境の準備ですが、私は LinuxMint 上でやりました。
32bitライブラリを動作させるために必要なソフトをインスールします。

$ sudo apt-get install ia32-libs

Androidアプリビルド環境として Ant と OpenJDK をインストールします。

$ sudo apt-get install openjdk-7-jdk ant

Qt Project サイトから qt-linux-opensource-5.1.0-beta1-android-x86_64-offline.run のダウンロードし、実行します。インストール先は/usr/loca/Qt5.1.0beta/としました。

Android NDK をインストールします。サイトから tarファイル android-ndk-r8e-linux-x86_64.tar.bz2 をダウンロードし、/usr/local/Androidに解凍にしました。

Android SDK をインストールします。サイトからzipファイル adt-bundle-linux-x86_64-20130514.zip をダウンロードし、HOMEディレクトリで解凍しました。

 $ cd ~
 $ unzip adt-bundle-linux-x86_64-20130514.zip

作られたディレクトリ名が長いので、リネームします。

 $ mv adt-bundle-linux-x86_64-20130514  adt

Eclipse から Android SDK Manager を起動し、必要なツールやAPIをインスールします。
入れたら、 Eclipse を再起動するのが良いようです。

 $ cd adt/eclipse
 $ ./eclipse

インストールとしてチェックを入れたもの:

  • Android SDK Tools
  • Android SDK Platform-tools
  • Android SDK Build-tools
  • Android 4.2.2 (API17)
  • あとはお好みで..

次に、Eclipseのメニュー [Window] - [Android Virtual Device Manager] をクリックし、仮想ディスクマネージャ(AVD)を起動します。次のような設定でAVDを作成します。

AVD作成

その後 [Start..]ボタンを押して、AVD を起動させておきます。
もうEclipseはいらないので閉じます。

プロジェクト新規作成

Qt Creator 起動します。

 $ /usr/local/Qt5.1.0beta/Tools/QtCreator/bin/qtcreator.sh

メニューから [ファイル] - [ファイル/プロジェクトの新規作成...] をクリックします。その画面で Qt GUI アプリケーション (すべてのテンプレート)を指定し選択ボタンを押します。私の環境では、プラットホームとしてAndroidだけを指定して進めると、途中で固まってしまったので、[すべてのテンプレート]を指定しています。
新規作成

次の画面で、プロジェクトの名前と保存するディレクトリを指定し、「次へ」ボタンを押して進みます。

次の「キットの選択」画面では、Desktop と Androidの1つを選択しておけばよいでしょう。
キットの選択

あとはデフォルトで進めて、最後に完了ボタンを押して、ビルド&実行環境を作ります。メインウィンドウだけのプロジェクトができるはずです。

プロジェクトを作成したら、共有ライブラリへのパスを通します。
ldconfigコマンドでやる方法がありますが、ここでは環境変数で解決してしまいます。プロジェクトのビルド環境設定画面で LD_LIBRARY_PATH に /usr/local/Qt5.1.0beta/5.1.0-beta1/gcc_64/libを指定しました。
共有ライブラリ設定

Android構成の設定をします。
Qt Creator の [ツール] - [オプション] - [Android] で、次のように設定しました。
Android構成の設定

プロジェクトのファイルから、mainwindow.ui をダブルクリックし、フォーム作成画面を開きます。 メインウィンドウに Push Button を貼り付けて保存します。こんな感じです。
フォーム作成

プラットホームの選択をします。左下のアイコンから、Androidを選択します。
プラットホームの選択

ビルド

「すべてビルド」をクリックしてビルドします。それでは、エミュレータで動かしてみましょう。
エミュレータはさっきから起動したままですよね。この状態で Qt Creatorの「実行」ボタンを押します。すると、Android 用の実行パッケージである apk が作成され、続けて Androidエミュレータにデプロイされます。その後、直ちにアプリが実行されます。アプリが表示されましたか?
実行中

私の環境では、[デバッグ]ボタンを押してデバッグしようとすると、固まってしまい強制終了するハメに。。正式版では、きっと対応してくれることでしょう。

実機でも動かす

Android端末でも動かしてみましょう。
作成された apk をAndroid端末にUSB経由でコピーし、Android側のファイルマネージャからクリックしインストールします。完了後、そのHelloアプリのアイコンをタップし起動してみましょう。起動しましたか?

まとめ

AndroidアプリはJavaかHTMLでしか作ったことなかったので、C++で書けるのはなんだか新鮮!
将来的には、カメラやGPSセンサーへのインターフェースが簡単に呼び出せるようになるのだろうか。現時点では、デバイスを直接オープンするしかなさそうな。。。 正式版で期待。

Androidには Qt バージョン5.2で正式に対応する予定のようです。そのバージョンでは iOS も正式に対応するとか、しないとか。
とにかく、今後の展開を見守りましょう。

23
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
22