Hinweise zur Android-Plattform
Diese Seite enthält spezifische Informationen zum Erstellen und Ausführen von Qt-Anwendungen auf Android. Informationen zu den unterstützten Android-Versionen und API-Stufen finden Sie unter „Unterstützte Android-Versionen “.
Plugins und Importe – Besondere Hinweise
Wenn eine Anwendung Plugins verwendet, die von anderen Modulen abhängig sind, müssen diese Module in den Abhängigkeiten der Anwendung aufgeführt werden. Weitere Informationen finden Sie unter „Erkennung von Abhängigkeiten“.
Qt GUI Abhängigkeit
Da Android-Apps in der Regel GUI-Elemente enthalten, ist das Qt-für-Android-Plugin in erster Linie darauf ausgelegt, eine grafische Benutzeroberfläche bereitzustellen, und implementiert daher die verschiedenen QPA-Abstraktionen. Folglich ist bei der Bereitstellung einer Qt-für-Android-App mit einer Abhängigkeit von Qt GUI. Darüber hinaus ist zu beachten, dass „ Qt Creator “ ausschließlich Gradle-Builds und -Bereitstellungen unterstützt, was bedeutet, dass die Ausführung über die Befehlszeile oder die Shell standardmäßig nicht unterstützt wird.
„Zurück“-Taste und „Zurück“-Geste
Unter Android stellen die Zurück-Geste (Android 13+) und das Drücken der systemeigenen Zurück-Taste eine Navigationsanforderung dar, nicht das Schließen eines Fensters. Wenn kein Element vorhanden ist, das das Drücken der Zurück-Taste verarbeitet, wird die Anwendung durch das Drücken der Zurück-Taste in den Hintergrund verschoben. Die Anwendung behält ihren Zustand bei und wird an der Stelle fortgesetzt, an der sie unterbrochen wurde, anstatt beendet zu werden.
Seit Qt 6.12 wird die Anwendung durch Drücken der Zurück-Taste mithilfe von ` Activity.moveTaskToBack() ` in den Hintergrund versetzt und löst kein Schließereignis mehr aus. Das bedeutet, dass die Signale ` QWidget::closeEvent() ` und ` Window.onClosing ` nicht ausgelöst werden, wenn ein Benutzer die Zurück-Taste drückt. Wenn Ihre Anwendung auf diese Signale angewiesen ist, um das Drücken der Zurück-Taste abzufangen, sollte die Anwendung den unten gezeigten Ansatz „ Shortcut “ übernehmen.
Um stattdessen innerhalb der Anwendung zu navigieren, z. B. um eine Seite aus einem „ StackView “ aufzurufen, sollten Sie die Zurück-Taste verarbeiten und das Ereignis akzeptieren. Durch das Akzeptieren des Ereignisses wird verhindert, dass Qt die Anwendung in den Hintergrund verschiebt. Die empfohlene Vorgehensweise ist ein Shortcut auf Fensterebene, der an die Tastenkombination „ Back “ gebunden ist und unabhängig davon ausgelöst wird, welches Element den aktiven Fokus hat:
Shortcut {
sequences: ["Back"]
enabled: Qt.platform.os === "android" && stack.depth > 1
onActivated: stack.pop()
}Verwenden Sie unter Android die Tastenkombination „ "Back" “ anstelle von „ StandardKey.Back “. Die Standardtaste ist außerdem mit „ Backspace “ und „ Alt+Left “ verknüpft, die von einer Hardware-Tastatur ausgelöst würden.
An der obersten Ebene des Stacks wird „ enabled “ zu „ false “, sodass der Rück-Tasten-Druck durchfällt und Qt die Anwendung in den Hintergrund verschiebt. Um zunächst vor ungespeicherten Änderungen zu warnen, aktivieren Sie die Tastenkombination, solange Änderungen ausstehen, und zeigen Sie eine Eingabeaufforderung über „ onActivated “ an. Sobald die Änderungen verarbeitet sind, wird die Tastenkombination deaktiviert und der nächste Rück-Tasten-Druck verschiebt die Anwendung in den Hintergrund.
Ein Element mit Fokus kann „ Qt::Key_Back “ ebenfalls über „ Keys.onBackPressed “ verarbeiten, jedoch nur, solange es den aktiven Fokus besitzt. Bei einer touchgesteuerten Benutzeroberfläche ist oft kein Element im Fokus, sodass der „Zurück“-Druck dieses Element nie erreicht. Die Tastenkombination auf Fensterebene funktioniert unabhängig vom Fokus und ist daher die sicherere Wahl.
Besondere Überlegungen zu OpenGL
Moderne Geräte unterstützen oft neben OpenGL ES 2.0 auch OpenGL ES 3.0 oder 3.1. Um einen geeigneten OpenGL-Kontext zu erhalten, legen Sie die gewünschte Version über ` QSurfaceFormat::setVersion()` fest.
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 mehr funktioniert.
Bekannte Probleme
Qt Creator Probleme bei der Fehlersuche
Weitere Informationen finden Sie unter „Qt Creator – Bekannte Probleme “.
Textvorhersage
Aufgrund eines Fehlers auf einigen Geräten wird die Eigenschaft „text_prediction_off“ ignoriert, wenn Sie die Texterkennung mit ImhNoPredictiveText deaktivieren – die Texterkennung bleibt also weiterhin aktiviert. Um dies zu umgehen, setzen Sie die Umgebungsvariable „ QT_ANDROID_ENABLE_WORKAROUND_TO_DISABLE_PREDICTIVE_TEXT “ auf „ 1 “. Dies kann jedoch zu Problemen mit anderen Tastaturen wie Gboard führen. Wenn Sie mit Gboard eine Sprache wie Japanisch verwenden, wird nur eine QWERTY-Tastatur angezeigt. Diese Umgebungsvariable wird bei jeder Anzeige der Tastatur abgefragt, sodass Sie die Problemumgehung je nach Bedarf ein- und ausschalten können.
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 Text verzerrt angezeigt wird. Um dies zu beheben, wurde eine Abhilfe eingerichtet, die jedoch den Speicherverbrauch erhöhen und die Leistung bei der Textdarstellung beeinträchtigen kann. Die Abhilfe wird nun standardmäßig auf allen Geräten verwendet.
Sie können den Workaround deaktivieren, indem Sie die Umgebungsvariable „ QT_ANDROID_DISABLE_GLYPH_CACHE_WORKAROUND “ auf 1 oder „true“ setzen. Sie sollten dies jedoch erst tun, nachdem Sie sichergestellt haben, dass der Text auf allen Zielgeräten korrekt angezeigt wird.
Einschränkungen
Einige der Qt-Module oder -Tools verfügen möglicherweise über Funktionen, die unter Android nicht unterstützt werden oder Einschränkungen unterliegen. Informationen zu plattformspezifischen Einschränkungen finden Sie in der Dokumentation des jeweiligen Moduls.
© 2026 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.