Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Qt für Android



  • Hi auch!

    Nachdem mein Projekt für Linux und Windows wunschgemäss funktioniert (auch wenn noch ein paar kleine Kinderkrankheiten drin sind), will ich mich jetzt daran machen, auch für Android eine Version zu entwickeln. Dabei sei gesagt, ich will mein aktuelles Projekt nicht einfach portieren, sondern diese App von Grund auf neu schreiben. Erfahrungsgewinn würde ich das nennen.

    So. Vor ein paar Jahren habe ich schon einmal mit Eclipse eine App geschrieben, was auch irgendwie funktioniert hat. Ursprünglich wollte ich Android-Studio einsetzen, aber das hat bei mir irgendeine Macke, die ich nicht ausmerzen kann.

    Da man das aber auch mit dem Qt-Creator machen kann und der mir auch wirklich gut gefällt, will ich es jetzt damit versuchen.

    Ich hab die Anleitung Getting Started with Qt for Android erfolgreich durchgearbeitet und alle Haken dort sind grün. Der Emulator startet auch, nur es wird kein Kit gebaut. Starte ich ein neues Projekt mit Qt-Quick, dann bekomme ich als verfügbare Plattformen nur Desktop angezeigt.

    Kann mir jemand einen Tipp geben, was ich da falsch mache?


  • Lifetime Qt Champion

    @Dany Did you install Qt for Android?
    If you did: did you also check the Android Kit in QtCreator? Are there any warnings/errors?


  • Moderators

    @Dany wenn du die Qt-Bibliothek nicht selbst bauen willst, würde ich empfehlen das "maintenancetool" im Qt Installationsordner zu starten, dort kannst du dann das fertige Packet für Android herunter laden.

    Mach aber vorher QtCreator zu, damit beim nächsten start ( nach installation ) der updater/parser das neue Packet gleich findet und ein neues Kir erstellt



  • @J-Hilk said in Qt für Android:

    maintenancetool

    Also. Ich habe android-armv7a-eabi-qt5 installiert. Trotzdem werden keine Kits angezeigt :(

    Das maintenancetool finde ich leider nicht :(. Muss man das unter Arch irgendwie gesondert installieren? Falls jemand mit Arch unterwegs ist?

    Es ist echt frustrierend gerade :(


  • Moderators

    @Dany ok
    Gehe mal unter Einstellungen
    Der Tab Kits und poste mal Screenshots von allen unter Menüs
    Kits Qt versionen Compiler etc, was da so aufgelistet ist



  • Okay, dann wollen wir mal.

    cb01a97d-3b6c-46f3-919f-cb6450ba4cf0-image.png

    8da3d715-73fe-4bb8-bb70-e5385bfb8139-image.png

    27dbc3e4-3099-4107-b376-e7bbc2f875bb-image.png

    d2f4dac5-c845-4589-9ba1-a06f19d3a728-image.png

    c80bd1f7-4013-4095-8c17-f75e929787ef-image.png

    So. das wäre dann alles.



  • Ich glaube, ich habe den Fehler gefunden! Ich hab eine neue Android-Version eingefügt. Die qmake-Datei dafür habe ich unter

    /opt/android-libs/armv7a-eabi/bin/qmake
    

    Gefunden und eingefügt. Jetzt bekommt ich neben Desktop auch noch Android Device angezeigt.

    Ich lasse das hier aber mal offen, bis ich damit experimentiert habe!



  • Und schon habe ich zwei neue Probleme.

    1. Der/Die/Das ADV geht zwar auf, aber irgendwie dauert es unendlich lange, bis es geladen ist, oder es lädt gar nicht wirklich. Die x86 Variante klappt super, nützt mir nur nichts.

    2. Ich bekomme folgende Fehlermeldung: :-1: error: No target architecture defined in json file. Was ist denn das jetzt?

    Ausserdem bin ich ein wenig verwirrt. Programmiere ich da jetzt doch in C++? Ich dachte, Android kann nur Java?

    Kennt jemand ein gutes Tutorial, für die ersten Schritte?


  • Moderators

    @Dany

    ok, die Tatsache, dass du das kit per Hand einfügen musst ist mehr als ungewöhnlich 🤔

    1. Der/Die/Das ADV geht zwar auf, aber irgendwie dauert es unendlich lange, bis es geladen ist, oder es lädt gar nicht wirklich. Die x86 Variante klappt super, nützt mir nur nichts.

    Nicht ungewöhnlich, deine (Intel) CPU hat es viel leichter x86 android zu emulierten, als arm, warum nützt dir die x86 Variante nichts ?

    Ich bekomme folgende Fehlermeldung: :-1: error: No target architecture defined in json file. Was ist denn das jetzt?

    das sagt mir leider nichts :(

    Ausserdem bin ich ein wenig verwirrt. Programmiere ich da jetzt doch in C++? Ich dachte, Android kann nur Java?

    Ja, und ja 😉, du programmierst in c++, und ja Android kann, streng genommen nur Java. Was hier im Verborgenen passiert ist, das der ganze Qt/c++ teil als Bibliothek übersetzt wird, dass dann von einem einfachen Java program ausgeführt wird.
    Sehr, sehr vereinfacht dargestellt



  • Im Moment bin ich mal auf Android-Studio umgeschwenkt. Da muss ich zwar den Emulator von Hand starten, aber es funktioniert wenigstens :(. Den Qt Creator nehme ich mir die Tage aber auch wieder vor.

    Und warum ich nicht die x86 Variante nehme? Weil ich blöd bin! Weil mir irgendetwas gesagt hat, ich muss die Hardware emulieren, die ich hinterher auch nutze. Das es Android für x86 gibt und ich das sogar unter Qemu laufen hab, so weit hab ich gar nicht gedacht :(


  • Moderators

    @Dany said in Qt für Android:

    Im Moment bin ich mal auf Android-Studio umgeschwenkt. Da muss ich zwar den Emulator von Hand starten, aber es funktioniert wenigstens :(. Den Qt Creator nehme ich mir die Tage aber auch wieder vor.

    ich würde sowieso empfehlen den Emulator auch in Creator, erst zu starten und dann dein Programm zu compilieren.

    Ich hab die Erfahrung gemacht, dass wenn mein PC erst noch den emulator starten muss, dass ich 2/3 der Zeit in einen timeout laufe.

    Weil mir irgendetwas gesagt hat, ich muss die Hardware emulieren

    tja, um ehrlich zu sein, es geht nichts über direkt Hardware debugging!

    Ich persönlich baue meine Apps alle unter desktop and mache dann erst den minimalen Aufwand, der nötig ist um es für Android/iOS zu porten. Und das teste ich dann direkt auf der Hardware, hat mein Leben deutlich vereinfacht :D


Log in to reply