Android プラットフォームに関する注意事項

このページでは、Android 上での Qt アプリケーションのビルドと実行に関する情報を提供します。サポートされるAndroid のバージョンとAPI レベルについては、サポートされる Android のバージョンを参照してください。

プラグインとインポート

アプリケーションが他のモジュールに依存するプラグインを使用する場合、これらのモジュールをアプリケーションの依存関係にリストする必要があります。詳細については、依存関係の検出を参照してください。

Qt GUI 依存関係

Android アプリには通常 GUI 要素が含まれているため、Qt for Android プラグインは主に GUI を提供するために構築されており、さまざまな QPA 抽象機能を実装しています。その結果、Qt for Android アプリのデプロイには Qt GUI.さらに、Qt Creator がサポートしているのは Gradle のビルドとデプロイのみであり、コマンドラインやシェルによる実行はサポートされていないことに注意してください。

OpenGLに関する特別な考慮事項

最近のデバイスは、2.0に加えてOpenGL ES 3.0または3.1をサポートしていることがよくあります。適切なOpenGLコンテキストを取得するには、QSurfaceFormat::setVersion ()を介して要求されたバージョンを設定します。

注意: OpenGL ES 3.xの機能を使用すると、2.0しかサポートしていない古いデバイスではアプリケーションが壊れてしまいます。

既知の問題

予測テキスト

一部のデバイスのバグにより、ImhNoPredictiveText で予測テキストをオフにすると、このプロパティは無視され、予測テキストは有効になります。これを回避するには、QT_ANDROID_ENABLE_WORKAROUND_TO_DISABLE_PREDICTIVE_TEXT 環境変数を1 に設定します。しかし、副作用として、この環境変数が Gboard などの他のキーボードで問題を引き起こす可能性があります。日本語のような言語を使用している場合、GboardではQWERTYキーボードしか表示されません。この環境変数はキーボードが表示されるたびに照会されるので、必要に応じて回避策のオン・オフを切り替えることが可能です。

ディスプレイカットアウトモード

Android LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGESはサポートされていません。詳細については、QTBUG-114437を参照してください。

テキストグリフのキャッシュ

一部の OpenGL ドライバにバグがあるため、Qt がテキストグリフをキャッシュするために使用するメカニズムが、すべての Android デバイスで期待通りに動作せず、テキストが乱れて表示されます。この問題を解決するために、回避策が用意されていますが、メモリ消費量が増加し、テキスト描画のパフォーマンスにも影響する可能性があります。この回避策は現在、すべてのデバイスでデフォルトで使用されています。

この回避策は、QT_ANDROID_DISABLE_GLYPH_CACHE_WORKAROUND 環境変数を1またはtrue に設定することで無効にできます。ただし、対象となるすべてのデバイスでテキストが正しく表示されることを確認した後に行ってください。

制限事項

Qt モジュールの中には、Android でサポートされていない機能や制限があるものがあります。詳細はQTBUG-72086 を参照してください。

よくある質問

  • カスタム Activity を作成するには、QtActivityAndroid Activity のどちらを使うべきですか?

    QtActivity Android Activity は を拡張し、Qt ライブラリをロードしたり、イベントや Android と Qt 間のネイティブコールを処理するために必要なロジックを実装しています。一般的に、ネイティブコールを使用する場合は、 を拡張する必要があります。そうでない場合は、 を拡張することで動作します。Activity QtActivity Activity

  • QtServiceAndroid Service のどちらを使うべきですか?

    QtActivity と同じ理由が当てはまります。ネイティブコールのようにQtライブラリをロードする必要がある機能を使用している場合を除きます。

  • Android Fragmentは Qt で使えますか?QtのFragmentに相当するものは何ですか?

    Android Fragments は Qt では使用できません。しかし、QtはQMLを使った独自のモジュールコンポーネントとビューを提供しています。1つのQMLビューに複数のコンポーネントを組み合わせることができます。詳しくは Qt Qml.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.