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
erweitertActivity
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 vonQtActivity
erforderlich, wenn Sie native Aufrufe verwenden. Ansonsten sollte die ErweiterungActivity
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.