AndEngine unter Android Studio einrichten

Die AndEngine unter Android Studio einrichten ist bereits die erste große Hürde, wenn man mit der AndEngine eine App entwickeln will. In meinem Fall stellte sich sogar heraus, dass es die größte war. Ich habe all meine Erfahrungen zusammengeschrieben um euch einen einfacheren Einstieg in die Welt der 2D Engine unter Android zu ermöglichen. Neben diesem Tutorial findet man auch sehr gute Ebooks zum Thema AndEngine.

AndEngine unter Android Studio einrichten

Die Anleitung basiert auf dem GLES2-AnchorCenter Brand der AndEngine die ich über Git wie hier beschrieben ausgecheckt habe. Für meine Projekte benötige ich sowohl die Engine als auch die Box2D Erweiterung. Die beiden Git Projekte werden wie folgt von Github geholt:

Ich habe mir im AndroidStudioProjects Ordner einen Unterordner Engines erstellt und führe die beiden Kommandos dort aus. Es gibt nun 2 neue Unterordner andEngine und andEnginePhysicsBox2DExtension. Da ich nicht mit dem master Branch arbeite sondern mit dem GLES2-AnchorCenter Brand muss ich diese noch auschecken. Das geht so:

beziehungsweise für die Box2D Erweiterung:

Nachdem wir den Code für die Engine und deren Physik Engine Erweiterung haben wird es Zeit das eigene Android Studio Projekt einzurichten.

Android Studio Projekt

AndEngine Android Studio ProjektDas fertig angelegte Projekt sieht in der Projektansicht etwa so aus (siehe Screenshot links). Ich habe ein Android Studio Projekt mit dem Namen ET angelegt. In diesem Projekt wurden die beiden AndEngine Projekte als Bibliothek hinzugefügt. Ich zeige nun Schritt für Schritt wie man sich das Projekt so einrichtet:

  • ein neues Projekt anlegen
    als minimum SDK wähle ich API 14 aus, als Projekttyp „Empty Activity„. Alle weiteren Einstellungen bleiben auf Standard.
  • Projektansicht ändern
    ich hatte bisher keine Erfahrung mit dem Android Studio und fand die Projektansicht als eine der größten Herausforderungen an, wenn man von Eclipse umsteigt. Bei jedem Projekt ändere ich die Ansicht von Android auf Projekt, weil mir deren Ansicht übersichtlicher erscheint. Alle Screenshots basieren auf dieser Ansicht:
    Projektansicht Android Studio
  • AndEngine und die Box2D Erweiterung als Modul anlegen
    Das war für mich die größte Hürde, da im Netz zahlreiche widersprüchliche Tutorials zu finden sind. Offenbar wurde im Programm die Menüstruktur verändert, so dass man oft Funktionen und Interfaces nicht an den in den Artikeln beschriebenen Pfaden fand. Ich lege die Module unter File->Project Structure an.
    Project StructureLinks oben findet man ein grünes „+“ Symbol über dieses kann man neue Module/Bibliotheken dem Projekt hinzufügen. Im neuen Dialogfenster wählt man Android Library aus. Darauf hin erscheint ein weiteres Fenster in dem man für jedes der beiden Module die Felder ausfüllt. Bei der AndEngine sieht das wie folgt aus:new ModuleAnalog dazu füllt man bei der Box2D Engine den Modulnamen und den Paketnamen mit org.engine.extension.physics.box2d aus. Hat man alles richtig gemacht, dann zeigt das Project Structure Fenster nun in der Liste neben der eigenen App (app) auch die beiden hinzugefügten Module.
  • Abhängigkeiten
    im vorerst letzten Schritt muss man noch die Abhängigkeiten der einzelnen Module definieren. Eine Abhängigkeit fügt man im Reiter Dependencies ein in dem man auf das grüne „+“ Symbol klickt. Als Tyüp wählen wir 3 Module dependency.
    Es gibt folgende Abhängigkeiten:
    app hängt von org.andengine und org.andengine.extension.physics.box2d ab
    org.andengine.extension.physics.box2d ab hängt von org.andengine ab
    wenn man das korrekt angelegt hat sieht das bei der app so aus:
    dependencies

Wir sind nun soweit im Android Studio fertig, das Projekt ist angelegt. Wir müssen nun den Code für die beiden AndEngine Module hinzufügen. Wir öffnen dazu einen Datei Explorer.

Source Code der Module hinzufügen

Die Projektstruktur ist fertig, jedoch fehlt noch der Source Code der beiden Module. Im Hauptverzeichnis eurer App unter AndroidStudioProjects/ET/ könnt ihr nun zwei neue Ordner org.andengine und org.andengine.extension.physics.box2d finden. In den Unterordnern der beiden findet sich bereits die von Android Studio angelegte Projektstruktur. Wir kopieren nun den Source Code wie folgt:
AndEngine Ordnerstruktur

  • AndEngine
    alles von AndroidStudioProjects/Engines/andEngine/src/org/andengine/ nach AndroidStudioProjects/ET/org.andengine/src/main/java/org/andengine/ kopieren
  • AndEngine Box2D Erweiterung
    alles von AndroidStudioProjects/Engines/andEnginePhysicsBox2DExtension/src/org/andengine/extension/physics/box2d/ nach AndroidStudioProjects/ET/org.andengine.extension.physics.box2d/src/main/java/org/andengine/extension/physics/box2d/ kopieren
  • Abhängigkeiten kopieren
    Box2D hat selbst noch Abhängigkeiten die man mit kopieren muss. Aus dem Grund kopieren wir von AndroidStudioProjects/Engines/andEnginePhysicsBox2DExtension/src/ den com Ordner nach AndroidStudioProjects/ET/org.andengine.extension.physics.box2d/src/main/java/

Finalisieren

Wenn man nun kompiliert, dann werden zahlreiche Fehler angezeigt.

Errors

In der Datei util/net/HttpClientUtils.java der AndEngine fehlt eine Abhängigkeit. Diese fügen wir ganz einfach hinzu

Zusätzlich müssen wir nun noch eine zusätzliche Zeile in die Datei build.gradle des org.andengine App Projekts einfügen. Diese wird nach der Zeile mit den buildToolsVersion eingefügt:

Ihr solltet nun die App fehlerfrei erstellen können. Sofern ihr eine „Empty Activity“ erstellt habt seht ihr eine „Hello World“ Ausgabe. Von der AndEngine ist noch nichts zu sehen. Im nächsten Artikel zeige ich euch wie ihr ein einfaches AndEngine Testprojekt daraus macht!

Problem

Das größte Problem ist, dass fast alle Artikel die man im Internet findet entweder über Eclipse berichten oder eine ältere Android Studio Version. Offenbar wurde vor Version 1.5 das Build System komplett überarbeitet und auf Gradle umgestellt. Da ich selber Gradle gar nicht kannte war es relativ schwer sich in die Konfiguration davon einzulesen, vor allem wenn man als erstes mit zahlreichen Fehlermeldungen konfrontiert ist, die einem selber absolut nichts sagen. Googlen und Try and Error war angesagt.

Weitere Quellen die mir bei dem Setup des Projekts geholfen haben:

Fazit

Nach einer Woche mit Kopfschmerzen konnte ich AndEngine unter Android Studio eingerichtet. Ich habe ein Demoprojekt mit der AndEngine und der Box2D Erweiterung zum Laufen gebracht. Dieses werde ich mir nun für alle weiteren Projekte als Basis kopieren und von dem Stand weiter arbeiten.

Die Entwicklung von Android über das Android Studio ist meiner Meinung nach viel komfortabler als mit Eclipse. Leider ist auch die Einrichtung des Projekts um einiges komplexer (zumindest in meiner getesteten Version). Die AndEngine selbst macht einen sehr guten Eindruck und ich freue mich bereits auf spannende Projekte damit.

Wie gefällt euch das Android Studio oder die AndEngine? Ihr dürft gerne Links auf eure Apps posten.

(Visited 373 times, 2 visits today)

Das könnte auch interessant sein...

5 Antworten

  1. Walter sagt:

    Alles unter google:“Setup Andengine Android Studio“ ausprobiert. Dann dieses Tutorial gefunden und (nach 2 Tagen) hats geklappt. Danke!

  2. Simon sagt:

    Super Artikel. Besten Dank! Folgende zwei Dinge sollten aber für alle weiteren Anwender noch angepasst / erweitert werden:

    – org.engine.extension.physics.box2d sollte natürlich org.andengine.extension.physics.box2d heissen (ausser man passt alle imports der Box2D Extension an)
    – Importieren der Libs (siehe dazu http://stackoverflow.com/questions/25146677/android-studio-with-andengine-physicsbox2d-extension)

    Dann klappts auch mit der Box2DExtension 🙂

    Nochmals Danke!

  3. Jürgen Rennenkampff sagt:

    Der Zielordner im Absatz „Box2D hat selbst noch Abhängigkeiten“ entspricht nicht der Dateistruktur in Android Studio 2.1.3.
    Folglich hat man am Schluss immernoch 100 Kompilationsfehler.

    Meine Einschätzung nach vielstündiger Google-Recherche: Auch wenn man dieses Paket heute zum Laufen brächte – morgen oder übermorgen
    ist es tot. So kann man nicht arbeiten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.