Ich versuche, meinem libGDX-Projekt in IntelliJ Idea Google Play-Dienste hinzuzufügen. Ich habe die Installationsanleitung hier befolgt: https://developers.google.com/android/guides/setup
das sieht ziemlich einfach aus. Ich habe diese Zeilen gerade zu meinem build.gradle im entsprechenden Abschnitt hinzugefügt, sodass die Dinge jetzt so aussehen:
project(":android") {
apply plugin: "android"
apply plugin: 'com.android.application'
configurations { natives }
dependencies {
compile project(":core")
compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86"
compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64"
compile 'com.google.android.gms:play-services:11.2.0'
}
}
Dann versuche ich, mein Gradle-Projekt in Idea zu synchronisieren, um den Fehler "Fehler beim Auflösen" zu erhalten.
In der Installationsanleitung heißt es außerdem: "Stellen Sie sicher, dass Sie diese Versionsnummer jedes Mal aktualisieren, wenn die Google Play-Dienste aktualisiert werden." Das Problem ist jedoch, dass es fast unmöglich ist, diese Versionsnummer zu finden: meine Google Play Services SDK-Version gemäß Android SDK Manager ist "43", und bisher konnte ich solche "11.2.0" oder eine typische Versionszeichenfolge nicht mit der Versionsnummer "43" korrelieren. Nicht, dass die Installationsanleitung nichts dazu aussagt.
Wie auch immer, ich habe viele Dinge aus der Fülle der damit zusammenhängenden Fragen ohne Erfolg ausprobiert. Insbesondere muss ich darauf hinweisen, dass mein Android SDK ordnungsgemäß aktualisiert wurde und ich bin sicher, dass es das ist, das von Idea verwendet wird (ich habe dies bereits dreimal überprüft ...):
Ich verwende die API-Stufe 26, aber die anderen Definitionen verwenden dasselbe Verzeichnis für das Android SDK. Außerdem habe ich KEIN anderes Android SDK in diesem Laptop installiert, so dass es keine Frage gibt, ob Idea dieses und nur dieses verwendet.
Ideen sind mehr als willkommen.
Danke im Voraus!
apply plugin: 'com.google.gms.google-services'
Antworten:
Ich hatte das Problem, als ich es
jcenter()
zuvorgoogle()
in build.gradle auf Projektebene eingefügt habe. Als ich die Reihenfolge geändert undgoogle()
zuvorjcenter()
in build.gradle eingefügt habe, ist das Problem verschwundenHier ist mein letztes build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
quelle
Ich habe gerade Version 11.2.0 durch 11.0.0 ersetzt und dann schien es gut zu funktionieren, was bedeuten musste, dass 11.2.0 nicht im neuesten Android SDK enthalten war.
Nachdem ich mit der gesamten verfügbaren verstreuten Dokumentation zu kämpfen hatte, gelangte ich zufällig zu diesem Dokument (ich denke, es wird von Google nicht hoch genug indiziert): https://developers.google.com/android/guides/releases
Ich zitiere von dort:
Selbst wenn dies nicht unbedingt bedeuten sollte, dass sie mit dem heruntergeladenen SDK nicht mehr verfügbar sind, scheint dies tatsächlich der Fall zu sein.
Wie auch immer, das Hinzufügen von google () zu meinem build.gradle hat nicht funktioniert (nicht gefunden, undefiniert oder was auch immer ...), daher habe ich einen anderen Ansatz verwendet, den ich in diesem Dokument gefunden habe, auf den vom vorherigen verwiesen wurde:
https://developer.android.com/studio/build/dependencies.html#google-maven
Ich habe meine build.gradle-Datei geändert und diese Zeile zu allprojects / repositories hinzugefügt, wie in:
allprojects { ... repositories { ... maven { url "https://maven.google.com/"} } }
Und dann auch im Android-Bereich in derselben build.gradle-Datei:
project(":android") { ... dependencies { ... compile 'com.google.android.gms:play-services-ads:11.2.0' } }
Diese beiden Zeilen reichten aus, um Gradle problemlos synchronisieren zu können. Ich musste keine Plugins hinzufügen, außer denen, die standardmäßig bereits in meinem libGDX-Projekt hinzugefügt wurden.
Danach habe ich ein paar verschiedene Fehler bekommen, aber keine über Gradle oder Abhängigkeiten. Kurz gesagt, JFTR:
Zuerst hatte ich eine minSdkVersion von 8. Gelöst durch Erhöhen auf 14. Ich denke, ich könnte leben, ohne all diese Geräte unter 14 zu unterstützen.
Zweitens hatte ich Probleme mit der Dex-Obergrenze der Referenzen. Ich habe dieses Problem noch nie zuvor gesehen, aber vielleicht haben Sie bereits die Lösung bemerkt, die ich verwendet habe: Anstatt das gesamte "com.google.android.gms: play-services" zu kompilieren, habe ich nur "com.google.android.gms" verwendet : play-services-ads 'das ist die API, die mich gerade interessiert. In anderen Fällen, in denen eine solche Lösung möglicherweise nicht hilfreich ist, bietet dieses Dokument möglicherweise einen besseren Einblick: https://developer.android.com/studio/build/multidex.html
Drittens habe ich auch danach dieses "Jumbo" -Problem hier beschrieben und beantwortet: https://stackoverflow.com/a/26248495/1160360
Und das ist es. Ab sofort baut sich alles auf und mein Spiel zeigt endlich diese Admob-Banner.
Ich habe Stunden damit verbracht, dachte ich, was mich fragt, ob all diese Gebäudeautomationssysteme, die wir in letzter Zeit verwenden, die zusätzliche Last wert sind, die sie hinzufügen.
Ich meine, als ich Admob vor ungefähr fünf Jahren zum ersten Mal zu einer App hinzufügen musste, musste ich nur eine JAR-Datei herunterladen und in ein Verzeichnis in meinem Projekt stellen. Es war ziemlich offensichtlich und der gesamte Prozess, vom Googeln "Einrichten von Admob in meinem Android-Projekt" bis zur Anzeige eines Admob-Banners in meiner App, dauerte nur wenige Minuten. Ich werde es hier lassen, da dies nicht der Ort für eine solche Debatte ist.
Trotzdem hoffe ich, dass meine eigene Erfahrung für jemand anderen nützlich ist.
quelle
maven { url "https://maven.google.com/"}
zugoogle()
. Die Maven-Linie ist für Versionen mit niedrigerem Gradle obligatorisch [dh niedriger als Gradle 4.1]. Prost Kumpel!build.gradle
Dateien der obersten Ebeneallprojects{ repositories{...}}
anstatt in die modulspezifische Build-Datei, z. B.app/build.gradle
, einfügen müssenrepositories
?Fügen Sie dies Ihrer
build.gradle
Datei auf Projektebene hinzu :repositories { maven { url "https://maven.google.com" } }
Es hat bei mir funktioniert
quelle
Ich habe stundenlang versucht, dieses Problem zu lösen, nachdem ich Android Studio einige Zeit nicht verwendet hatte und die Updates nicht kannte.
Es ist wichtig, dass dies
google()
der erste Punkt ist, der so stehtrepositories
:Irgendwie
google()
war der zweite Punkt danachjcenter()
, also war alles durcheinander und funktionierte nicht. Vielleicht hilft das jemandem.quelle
Das Google Play Services SDK befindet sich im Inneren
Google Repository
.Starten Sie Intellij IDEA.
Klicken Sie im Menü Extras auf Android> SDK Manager.
Aktualisieren Sie den Android SDK Manager: Klicken Sie auf SDK Tools , erweitern Sie Support Repository , wählen Sie Google Repository aus und klicken Sie dann auf OK.
Die aktuelle Version des Google Repository ist 57.
Nach dem Update synchronisieren Sie Ihr Projekt.
BEARBEITEN
Ab Version
11.2.0
müssen wir das Google Maven Repo verwenden, also fügen Sie den Google Maven Repo Link in das Repositories-Tag ein. Überprüfen Sie den Versionshinweis von hier .allprojects { .. repositories { ... maven { url 'https://maven.google.com' // Alternative URL is 'https://dl.google.com/dl/android/maven2/' } } }
quelle
Eine aktuellere Antwort:
allprojects { repositories { google() // add this } }
Und vergessen Sie nicht, gradle auf 4.1+ zu aktualisieren (in gradle-wrapper.properties):
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Quelle: https://developer.android.com/studio/build/dependencies.html#google-maven
quelle
Ich habe folgende Lösung gefunden, um folgenden Code zu ersetzen
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.3' classpath 'com.google.gms:google-services:3.2.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
Es funktioniert gut für mich
quelle
Spätestens
Google Play Services 15.0.0
dann tritt dieser Fehler auf, wenn Sie den gesamten Spieldienst wie diesen einbindenimplementation 'com.google.android.gms:play‐services:15.0.0'
Stattdessen müssen Sie den Detailservice wie angeben
Google Drive
com.google.android.gms:play-services-drive:15.0.0
quelle
Überprüfen Sie Ihre Gradle-Einstellungen. Möglicherweise ist sie auf Offline-Arbeit eingestellt
quelle
Ich habe diesen Fehler auch bekommen, aber aus einem anderen Grund. Es stellte sich heraus, dass ich einen Tippfehler gemacht hatte, als ich versuchte, die Versionsnummer als Variable anzugeben:
dependencies { // ... implementation "com.google.android.gms:play-services-location:{$playServices}" // ... }
Ich hatte die Variable playServices in gradle.properties im Stammverzeichnis meines Projekts definiert:
playServices=15.0.1
Der Tippfehler war,
{$playServices}
der so hätte sagen sollen${playServices}
:dependencies { // ... implementation "com.google.android.gms:play-services-location:${playServices}" // ... }
Das hat das Problem für mich behoben.
quelle
Ich hatte dieses Problem. Und ich fand das lösen. Öffnen Sie in Android Studio das Menü Datei und gehen Sie zu Projektstruktur. In der Modul-App wechseln Sie zur Registerkarte Abhängigkeiten. Sie können 'com.google.android.gms: play-services: xxx' hinzufügen, indem Sie auf die Schaltfläche + klicken.
quelle
Hier geht es wahrscheinlich darum, dass Sie nicht die richtige Abhängigkeitsversion eingegeben haben. Sie können die richtige Abhängigkeit daraus auswählen:
Wenn Sie Ihre Anforderungen nicht finden können, sollten Sie Ihr SDK von unten aktualisieren:
tools> android> sdk manager> sdk update> wähle alles was du brauchst> ok
quelle
Ich hatte das gleiche Problem und es wurde durch Deaktivieren des Cradle-Offline-Modus behoben, obwohl ich mich nicht erinnern konnte, wann ich es deaktiviert habe!
Hier ist die Lösung:
Wie deaktiviere ich den Gradle 'Offline-Modus' in Android Studio? [Duplikat]
quelle