2015-09-22

LibGDX mit AdMob Google Ads und Google Play Game Services

Es war eine Odysee, so viel sei gesagt.

Ich wollte AdMob und Google Play Game Services zu meinem Android-Spiel hinzufügen, scheiterte aber immer wieder trotz genauem Befolgen der Anleitungen auf Google Developers und im LibGDX-Wiki.



Vor allem folgender Fehler ließ mich fast verzweifeln:
libgdx Error:Configuration with name 'default' not found.

Viele Anleitungen wichen stark von den beiden ab, waren aber häufig für Eclipse ausgelegt. Die Anleitung von Google selbst bezog sich auf Android Studio, welches zwar auf IntelliJ basiert, aber scheinbar doch nicht komplett kompatibel ist.


Nach ewigem hin und her entschied ich mich letztendlich doch Android Studio zu verwenden, und es klappte.


Hier die kurze Anleitung, ich baue sie bei Gelegenheit noch aus.

  1. importiert euer LibGDX-Projekt mit Open und dem build.gradle im Wurzelverzeichnis .../meinLibGDXprojekt/
  2. ladet das hier herunter
  3. entpackt den ordner und kopiert den Ordner BaseGameUtils unter libraries/ in den gleichen Ordner in dem euer LibGDX-Projekt liegt
  4. öffnet nun in Android Studio File > New > Import Module
  5. wählt dort den Ordner BaseGameUtils aus und beendet den Assistenten
  6. Android Studio trägt jetzt automatisch in eure settings.gradle ':BaseGameUtils' ein, falls nicht tut es manuell
  7. öffnet jetzt build.gradle und fügt am Ende der Android Dependencies folgendes ein

1:  project(":android") {  
2:    apply plugin: "android"  
3:    configurations { natives }  
4:    dependencies {  
5:      compile project(":core")  
6:      compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"  
7:      natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"  
8:      natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"  
9:      natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"  
10:      compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"  
11:      natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi"  
12:      natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a"  
13:      natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86"  
14:      compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"  
15:      natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi"  
16:      natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a"  
17:      natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"  
18:      compile 'com.google.android.gms:play-services-games:8.1.0'  
19:      compile 'com.google.android.gms:play-services-ads:8.1.0'  
20:      compile project(':BaseGameUtils')  
21:    }  
22:  }  


Und nun wartet bis Android Studio die Änderungen an .gradle Dateien bemerkt und Synchronisieren will, klickt dann auf Sync Now - wenn man das manuell macht kann es komischerweise schief gehen.




Kommen wir nun zu Google Ads.

Dazu muss man nur

compile 'com.google.android.gms:play-services-ads:8.1.0'

in seine build.gradle im Android-Abschnitt einfügen, dann funktioniert es. Allerdings bei mir auch nur in Android Studio.

Diese beiden Google Anleitungen haben mir sehr geholfen - viel mehr als alle anderen Artikel und Wikis (das LibGDX-Wiki eingeschlossen)

Google Play Game Services

Google Ads

PS: Wenn ihr einen Fehler wegen der Google Services Version bekommt, durchsucht euren Stacktrace nach der erwarteten Version und fügt sie einfach in  android/res/values/version.xml ein.

No comments:

Post a Comment