Hinweise zur Android-Plattform

Diese Seite enthält Informationen, die sich speziell auf die Erstellung und Ausführung von Qt-Anwendungen unter Android beziehen. Unter Unterstützte Android-Versionen erfahren Sie, welche Android-Versionen und API-Levels unterstützt werden.

Plugins und Importe Besondere Überlegungen

Wenn eine Anwendung Plugins verwendet, die von anderen Modulen abhängen, müssen diese Module in den Abhängigkeiten der Anwendung aufgeführt sein. Weitere Informationen finden Sie unter Erkennung von Abhängigkeiten.

Qt GUI Abhängigkeiten

Da Android-Anwendungen typischerweise GUI-Elemente enthalten, wurde das Qt for Android-Plugin hauptsächlich für die Bereitstellung einer GUI entwickelt, so dass es die verschiedenen QPA-Abstraktionen implementiert. Folglich wird erwartet, dass die Bereitstellung einer Qt für Android Anwendung eine Abhängigkeit von Qt GUI. Darüber hinaus ist es erwähnenswert, dass Qt Creator nur Gradle Builds und Deployments unterstützt, was bedeutet, dass Befehlszeilen- oder Shell-Ausführungen nicht unterstützt werden.

Besondere Überlegungen zu OpenGL

Moderne Geräte unterstützen oft OpenGL ES 3.0 oder 3.1 zusätzlich zu 2.0. Um einen geeigneten OpenGL-Kontext zu erhalten, setzen Sie die gewünschte Version über QSurfaceFormat::setVersion().

Hinweis: Die Verwendung von OpenGL ES 3.x-Funktionen führt dazu, dass die Anwendung auf älteren Geräten, die nur 2.0 unterstützen, nicht funktioniert.

Bekannte Probleme

Vorhersagender Text

Aufgrund eines Fehlers auf einigen Geräten wird diese Eigenschaft ignoriert, wenn Sie das Textvorhersageprogramm mit ImhNoPredictiveText deaktivieren, und das Textvorhersageprogramm ist weiterhin aktiviert. Um dies zu umgehen, setzen Sie die Umgebungsvariable QT_ANDROID_ENABLE_WORKAROUND_TO_DISABLE_PREDICTIVE_TEXT auf 1. Ein Nebeneffekt ist jedoch, dass diese Umgebungsvariable ein Problem mit anderen Tastaturen wie Gboard verursachen kann. Wenn Sie eine Sprache wie Japanisch verwenden, wird mit Gboard nur eine QWERTY-Tastatur angezeigt. Diese Umgebungsvariable wird jedes Mal abgefragt, wenn die Tastatur angezeigt wird, so dass Sie die Abhilfe je nach Bedarf ein- und ausschalten können.

Display-Ausschnitt-Modi

Android LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES wird nicht unterstützt. Für weitere Informationen siehe QTBUG-114437.

Zwischenspeicherung von Textglyphen

Aufgrund eines Fehlers in einigen OpenGL-Treibern funktioniert der von Qt verwendete Mechanismus zum Zwischenspeichern von Textglyphen nicht auf allen Android-Geräten wie erwartet, was dazu führt, dass der Text verwürfelt erscheint. Um dies zu beheben, gibt es eine Umgehung, die jedoch den Speicherverbrauch erhöhen und die Leistung der Textdarstellung beeinträchtigen kann. Die Abhilfe wird nun standardmäßig auf allen Geräten verwendet.

Sie können die Abhilfe deaktivieren, indem Sie die Umgebungsvariable QT_ANDROID_DISABLE_GLYPH_CACHE_WORKAROUND auf 1 oder true setzen. Sie sollten dies jedoch erst tun, nachdem Sie sich vergewissert haben, dass der Text auf allen Zielgeräten korrekt angezeigt wird.

Einschränkungen

Einige der Qt-Module verfügen möglicherweise über Funktionen, die auf Android nicht unterstützt werden, oder haben Einschränkungen. Weitere Informationen finden Sie in QTBUG-72086.

Häufig gestellte Fragen

  • Sollte ich QtActivity oder Android Activity verwenden, um eine benutzerdefinierte Activity zu erstellen?

    QtActivity erweitert Activity und implementiert die Logik, die zum Laden der Qt-Bibliotheken oder zur Behandlung von Ereignissen und nativen Aufrufen zwischen Android und Qt erforderlich ist. Im Allgemeinen ist die Erweiterung von QtActivity erforderlich, wenn Sie native Aufrufe verwenden. Ansonsten sollte die Erweiterung Activity funktionieren.

  • Sollte ich QtService oder Android Service verwenden?

    Hier gelten die gleichen Überlegungen wie bei QtActivity. Es sei denn, Sie verwenden Funktionen, für die die Qt-Bibliotheken geladen werden müssen, wie z. B. native Aufrufe.

  • Können Android-Fragmente mit Qt verwendet werden? Was ist die Entsprechung für Fragment in Qt?

    Android-Fragmente können nicht mit Qt verwendet werden. Qt bietet jedoch eigene modulare Komponenten und Ansichten mit QML. Sie können mehrere Komponenten in einer QML-Ansicht kombinieren. Für weitere Informationen, siehe 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.