8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

QtAdvent Calendar 2016

Day 18

Android向けQt開発環境のセットアップ 2016年年末最新環境版

Last updated at Posted at 2016-12-18

この記事は、Qt Advent Clender 2016 18日目(翌日再提出版デス、ゴメンナサイ)の記事です。
統合環境と個別SDKの関係等々、Android系開発環境の設定は2015年頃とは状況が異なってきており、最新のセットアップ手順を再確認してみました。


SONY PS4用ステレオカメラ、開発者通称ps4eyeをUSB3コネクターに変換してAndroidに接続する....というネタを当初考えていたのですが、購入した新型丸棒型が旧型角棒型とはかなり内容(ファームウェア)が違うという話になりいったん断念、記事を変更しました。


今年の Advent Calender 開始以降にリリースされた最新版のツールを使用します。ここではJDKも含めて在来版の開発環境を一度アンインストールしたうえで、設定手順を再確認しています。
また共通ツール類は一般的には /opt 配下へのインストールが推奨されているようですが、本例ではすべてユーザーホームへのインストールとしています。

JDK/SDK/NDK等々個別にセットアップする方は、適宜読み飛ばしてください。そのほうが所要時間が短いのは確かです。

環境

  • Intel i7 PC
  • Ubuntu 16.04.01 LTS (検証用にJava関連アンインストール)
  • Nexus 5x Android 7.1.1 (開発者モード)

主なツール群

Android Studio セットアップ

まず Android SDK / NDK そして Java が必要ですが、現在の標準開発ツール Android Studio 2系のセットアップで、OpenJDKを始めとしてすべて揃います。

  1. 取得した.zipファイルの中身をHomeディレクトリに展開。


  2. 展開ディレクトリ配下の ./bin/studio.sh を実行する。


  3. 起動した Android Studio Setup Wizard に Android SDK が無いと叱られ、Android SDK と最新プラットフォームのAPI 25(Android 7.1.1)が指定され、承認後にダウンロード/インストールが始まります。(入浴 or 食事タイム)Screenshot from 2016-12-16 21-05-21.png


  4. Finish ボタンがクリック可能になればクリックし、 Android Studio Setup Wizard から Android Studio のオープニング画面になります。
    右下の Configure から SDK Manager を起動してください。Screenshot from 2016-12-16 21-53-51a.png


  5. SDK Manager で、最低限 NDK を追加してください。ここでは Documentation for Android SDK も追加しました。この後でライセンスに対する同意が求められます。同意後にダウンロードとインストールが行われます。(暫しご歓談ください。)Screenshot from 2016-12-16 22-08-52.png


  6. 最近の標準セットアップでは、NDKはSDK配下に置かれるようです。Screenshot from 2016-12-16 22-53-05.png


  7. 突然ですが、ここでQt側のドキュメントを参照してください。
    Getting Started with Qt for Android
    http://doc.qt.io/qt-5/androidgs.html


  8. 最初の指示は、 Sdk/tools ディレクトリ配下の SDK Manager によるSDK関連の更新です。ここで指定した Android 7.1.1 用にいくつかシステムイメージの追加が推奨されます。必ずしも必要なさそうですが、今回はデフォルト設定には逆らわない方針で。
./android update sdk

Screenshot from 2016-12-16 23-49-06.png



9. 続く二行の apt-get コマンドは、64bitホストによる32bitターゲット開発のためのもののようですが、これらも指示通りにインストールしておきます。

sudo apt-get install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386
```<br/>

sudo apt-get install libsdl1.2debian:i386

<br/><br/>

# Qt for Android セットアップ
ようやくQt側の設定に入ります。

1. JDKをセットアップします。<br/>既にこれまでの工程でJava標準開発環境が稼働していることからわかるように、独立したJDKを更にインストールする必然性は本来はありません。しかし残念ながら、現在の Qt Creator 4.2.0 標準状態では Android Studio の OpenJDK セットアップを正しくは認識してくれません。<br/>ここではOracleの Java SE 8u111 を採用します。(Qt Creator 公式ドキュメントでは OpenJDK 可としていますし、当方の環境でも可能だったと記憶していたのですが、今回最新版コンボで新規に立て直してたケースでは、うまく行きません....本稿遅刻再提出の理由のひとつ....でした。)<br/><br/>

$ sudo apt install python-software-properties

$ sudo add-apt-repository ppa:webupd8team/java

$ sudo apt update

$ sudo apt install oracle-java8-installer

$ sudo apt install oracle-java8-set-default

$ sudo update-alternatives --config java

2. 環境変数 $JAVA_HOME が機能していることを確認しておきましょう。Qt Creator はこの変数を参照します。<br/><br/>

$ echo $JAVA_HOME

3. Qt Creator インストーラーを起動します。<br/>```
$ ./Downloads/qt-opensource-linux-x64-android-5.7.1.run
```<br/>所要時間はたいして変わらないので、"Select Components"ではすべて選択してみました。(トイレには行けますが、食事を取る時間はできません。)![Screenshot from 2016-12-19 03-09-16.png](https://qiita-image-store.s3.amazonaws.com/0/81674/aec75285-726f-6a63-3682-2658445c3419.png)
<br/><br/>
4. Tools > Options... > Devices > Android で、JDK/SDK/NDK の場所を設定再確認します。![Screenshot from 2016-12-19 03-19-12.png](https://qiita-image-store.s3.amazonaws.com/0/81674/021718ba-417a-5640-aec1-4c469cd635a3.png)
<br/><br/>
5. Tools > Options... > Build & Run > Kits 及び Qt Versions 両タグで、インストーラの”Select Components”で指定したコンポーネントが揃っていることを確認します。![Screenshot from 2016-12-19 03-23-30.png](https://qiita-image-store.s3.amazonaws.com/0/81674/f85ac607-3884-8475-e0ef-080374e31e3a.png)
<br/><br/>

# 実機で QML アプリケーションを動かしてみる
いよいよ Qt アプリケーションを作成しますが、ここではホスト上の仮想機ではなく実機への展開を試します。

1. Examples から、QML Camera Exampl を試してみましょう。<br/>ここではWorkディレクトリにコピーしてから作業しています。![Screenshot from 2016-12-19 03-26-09.png](https://qiita-image-store.s3.amazonaws.com/0/81674/fda415be-7bdf-dfdf-9366-14e912887395.png)
<br/><br/>
2. File > Open File or Project... から、該当ディレクトリの .pro ファイルを選択します。![Screenshot from 2016-12-19 09-35-18.png](https://qiita-image-store.s3.amazonaws.com/0/81674/ee7d50b2-d195-30b9-285a-789434788498.png)
<br/><br/>
3. Projects > Build & Run をざっと概観して、各種の設定が可能なことを確認しましょう。(General 項の Build Directory では、出力先指定がソースディレクトリーの外で横並びでないと怒られます....歴史的挙動ですが、この警告が今でも意味があるのかどうか、今回は確認していません。かなり古典的なQMakeの制約だったと思いますが。)![Screenshot from 2016-12-19 12-10-21.png](https://qiita-image-store.s3.amazonaws.com/0/81674/7eb86334-b2bf-fa75-8ba2-10833a98ed52.png)
<br/><br/>
4. 実機へのデプロイには、証明書の添付が必要です。Android Studio でも Qt Creator でも、現在では開発環境内で証明書ストアも証明書自体も作成可能です。<br/>同じく Projects > Build & Run 画面の Build Steps > Build Android APK > (Details) > Sign package > Create で作成・選択します。![Screenshot from 2016-12-19 10-33-55.png](https://qiita-image-store.s3.amazonaws.com/0/81674/f0756482-3283-b0a0-3bd1-10bfa8b517d2.png)
<br/><br/>
5. 作成した証明書ストアから、添付する証明書を選択してください。![Screenshot from 2016-12-18 19-15-39.png](https://qiita-image-store.s3.amazonaws.com/0/81674/57013c6b-43b8-7290-4ec2-81f63534ee87.png)
<br/><br/>
6. 開発者モードで DEBUG ON に設定した実機をUSB接続しましょう。実機側には接続承認要求が出ているはずです。![Screenshot_20161219-104314.png](https://qiita-image-store.s3.amazonaws.com/0/81674/5e063597-3bf1-bd9e-10d9-a37b7b522a7f.png)
<br/><br/>
7. 実機側で接続承認前に、Qt Creator 側が実機を触りに行った場合、Incompatible devices として表示されます。![Screenshot from 2016-12-19 03-28-23.png](https://qiita-image-store.s3.amazonaws.com/0/81674/3bb233a9-0227-13e1-7c23-cd8d26882580.png)
<br/><br/>
8. 実機デプロイ(ARMクロスコンパイル)が選択されていることを確認し、その下のRunアイコンをクリックします。![Screenshot from 2016-12-19 11-21-18.png](https://qiita-image-store.s3.amazonaws.com/0/81674/ad329f75-8709-202b-7d20-b6c3384258a0.png)
<br/><br/>
9. 実機側で接続承認を与えれば、デプロイ先が選択可能となります。![Screenshot from 2016-12-19 03-29-41.png](https://qiita-image-store.s3.amazonaws.com/0/81674/d77feaa8-b271-8ca9-aeb2-8038a76c2dca.png)
<br/><br/>
10. 実機で動作しましたか?実機操作の画面と、 Qt Creator での各QML記述と実機画面・動作を比べてみましょう。この例では画面が上下逆になっていますが、これはQt側の問題ではなく、最近の Android SDK または Nexus API の問題だったと思います。![Screenshot_20161219-113315.png](https://qiita-image-store.s3.amazonaws.com/0/81674/334427be-c9e4-f5d3-9cb9-a001d4e76af8.png)
<br/><br/>
11. この方法では、デスクトップにアイコンが展開されません。ちょっとさみしいですね。手動で展開してみましょう。![Screenshot_20161219-114550.png](https://qiita-image-store.s3.amazonaws.com/0/81674/b911df9b-20bd-e906-51a5-3c4decc6e0f9.png)
<br/><br/>

# 参考文献

+ Deploying an Application on Android<br/>http://doc.qt.io/qt-5/deployment-android.html




8
4
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
8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?