Wenn Sie mein Projekt auf die neueste Version von Google Play Services ( v4.0, veröffentlicht an Halloween 2013 ) aktualisieren, sollten Sie der AndroidManifest.xml
Datei jetzt ein neues Tag hinzufügen .
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
Wenn ich das versuche, erhalte ich leider den folgenden Kompilierungsfehler:
android-apt-compiler: /blahblah/AndroidManifest.xml:409: error: Error: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version').
Ich kann dann zu der Datei unter navigieren google-play-services_lib/res/values/version.xml
und die rohe Ganzzahl für dieses Symbol anzeigen:
<integer name="google_play_services_version">4030500</integer>
Und dann füge es wieder in mein ein AndroidManifest.xml
:
<meta-data
android:name="com.google.android.gms.version"
android:value="4030500" />
Dies funktioniert absolut einwandfrei und ich kann dann das Projekt und die App gut kompilieren und ausführen. Aber es ist definitiv eine unerwünschte Lösung mit offensichtlichen Problemen bei der Aufrüstbarkeit.
Irgendwelche Ideen?
android
google-play-services
Charles Madere
quelle
quelle
Antworten:
Für alle, die Eclipse verwenden, sollten Sie dies so tun.
Dann zu Ihrem Projekt
quelle
.project
Datei nicht in das angegebenegoogle-play-services_lib
Verzeichnis geschrieben werden kann. Der unmittelbare Grund ist natürlich, dass Eclipse nicht in das Programmdateiverzeichnis schreiben kann, in dem sich das SDK befindet. Die konkretere Frage wäre jedoch, warum eine Änderung der.project
Datei (die anscheinend zum SDK gehört und daher "korrekt" sein sollte) erforderlich ist an erster Stelle.Bitte beachten Sie, dass dieses Update möglicherweise nur für IntelliJ-Benutzer gilt !! (Weitere Informationen am Ende dieses Beitrags sollten für alle gelten.)
Dieses Problem wurde behoben! Ich benutze IntelliJ und es stellte sich heraus, dass ich gerade die Art und Weise falsch konfiguriert hatte, wie ich das
google-play-services_lib
Modul als Abhängigkeit aufgenommen habe.Da ich dies vollständig über die GUI und überhaupt nicht durch Bearbeiten von Dateien behoben habe, sind hier einige Screenshots:
Meine Projektstruktur sah also zunächst so aus ...
Dann habe ich das entfernt
google-play-services
Bibliothek aus meiner Abhängigkeitsliste entfernt, indem sie ausgewählt und dann unten auf die Minus-Schaltfläche geklickt habe. Beachten Sie den Fehler am unteren Rand des Dialogfelds, da für mein Projekt diese Bibliothek unbedingt erforderlich ist. Aber keine Sorge, wir werden es bald wieder hinzufügen!Als nächstes habe ich
google-play-services_lib
als Modulabhängigkeit anstelle einer Bibliotheksabhängigkeit hinzugefügt . Dann drücke ich ein paar Mal auf den Aufwärtspfeil unten, um diese Abhängigkeit an den Anfang der Liste zu verschieben. Beachten Sie aber den Fehler unten (wir sind noch nicht fertig!)Ich habe dann auf die Glühbirne am unteren Rand des Dialogfelds im Bereich für Fehlermeldungen geklickt, um dieses kleine Popup mit zwei Auswahlmöglichkeiten aufzurufen ( Zu Abhängigkeiten hinzufügen ... oder Bibliothek entfernen ). Klicken Sie auf die Option Zu Abhängigkeiten hinzufügen ... !
Ein neues kleines Dialogfenster sollte aufgetaucht sein. Ich hatte zwei Möglichkeiten, eine für mein Hauptprojekt (der Name ist verschwommen) und eine für das
google-play-services_lib
Projekt. Abhängig von Ihrem Projekt haben Sie möglicherweise eine Menge mehr (wie Sie vielleicht sehenactionbarsherlock
, solche Sachen). Wählengoogle-play-services_lib
und klicken Sie auf OK!Und endlich bist du fertig! Ich hoffe das hilft jemand anderem da draußen!
Weitere Informationen
Ich glaube, der Grund, warum dieses Problem anfänglich auftrat, ist, dass ich dachte , ich hätte das gesamte
google-play-services_lib
Projekt richtig in mein Gesamtprojekt aufgenommen ... aber ich hatte es tatsächlich nicht und stattdessen nur seine JAR-Datei (google-play-services_lib/libs/google-play-services.jar
) richtig aufgenommen . Diese JAR-Datei enthält nur Code, keine Werte für Android-Ressourcen@integer/google_play_services_version
Wert in meinem Projekt nie wirklich vorhanden . Aber der Code konnte in meinem Projekt verwendet werden, und so schien alles in Ordnung zu sein.Nebenbei bemerkt, das Beheben dieses Problems scheint auch den
GooglePlayServicesUtil.getErrorDialog(...).show()
Absturz behoben zu haben , den ich früher hatte. Das hätte aber auch durch das Update behoben werden können, da nicht wirklich 100% sicher.quelle
Ich hatte das gleiche Problem und anscheinend hat Eclipse die
version.xml
Dateigoogle-play-services_lib
beim Erstellen einer Kopie in / res / values aus dem ursprünglichen Projekt belassen . Ich habe die Datei aus dem Originalprojekt gezogen und in meine Kopie des Projekts eingefügt, und das Problem ist behoben.quelle
Unter Eclipse habe ich nach dem Importieren der Google Play-Bibliothek in den Projektarbeitsbereich gerade die Datei version.xml kopiert
zu
quelle
version.xml
Datei wahrscheinlich bei jedem Upgrade ersetzen .Für alle, die gradle verwenden: Geben Sie die Projektquelle nicht an, sondern laden Sie sie stattdessen mit SDK Manager herunter und fügen Sie diese Zeile zu den Abhängigkeiten hinzu:
quelle
compile 'com.google.android.gms:play-services:4.1.32@aar'
zu Ihrem hinzubuild.gradle
.@integer/google_play_services_version
verfügbar sein.quelle
Es fühlt sich an, als wäre Ihr Projekt mit einer älteren Version des Play Services-Bibliotheksprojekts verbunden. Der von Google empfohlene Ansatz besteht darin, das Bibliotheksprojekt im SDK zu finden und eine lokale Kopie zu erstellen. Dies bedeutet jedoch, dass Sie jedes Mal, wenn Sie das Play Services-Bibliotheksprojekt über den SDK-Manager aktualisieren, Ihre Kopie durch eine neue Kopie ersetzen müssen.
quelle
Ich bin auch darauf gestoßen, als ich versucht habe, google_play_services_froyo zu verwenden.
Ich habe diesen Fehler gemeldet: https://code.google.com/p/google-plus-platform/issues/detail?id=734
quelle
Nach dem Update auf die letzte Version hatte ich dieses Problem mit allen meinen Projekten, aber es wurde gelöst, indem ich erneut die Bibliotheksreferenz hinzufügte:
Wenn Sie die Bibliothek in Eclipse nicht in Ihrem Arbeitsbereich haben, können Sie sie hinzufügen mit:
File
->Import
->Existing Android Code Into Workspace
-> Durchsuchen und navigieren Sie zugoogle-play-services_lib
project lib, (android-sdk/extras/google/google_play_services/libproject
).Löschen
/bin
und dann/gen
Ordner meines Projekts (ähnlich der Option "Bereinigen") und erneutes Erstellen meines Projekts.quelle
Für Eclipse gelöst
Befolgen Sie die folgenden Schritte:
quelle
google-play-services_lib
war inF:\Android\sdk\extras\google\google_play_services\libproject\google-play-services_lib
Auf der Android Developer-Website von Google finden Sie Anweisungen zum "Hinzufügen von Google Play Services zu Ihrem Projekt" sowie Informationen zum Aktualisieren der Play Services-Version. Es gibt sogar ein Dropdown-Menü, in dem Anweisungen für Eclipse, Android Studio oder "Etwas anderes" angezeigt werden. Dies ist der beste Ort, um Anweisungen anzuzeigen, falls sie sich ändern. Die Seite ist hier:
http://developer.android.com/google/play-services/setup.html
Da die meisten Antworten hier für Eclipse gelten, finden Sie hier eine kurze Zusammenfassung zum Aktualisieren von Play Services mit Android Studio
Die Versionsnummer für die Version der Wiedergabedienste, die Sie auf Ihren Entwicklungscomputer heruntergeladen haben, finden Sie in Ihrem Ordner \ sdk \ extras \ google \ m2repository \ com \ google \ android \ gms \ play-services, wie hier erläutert : Wie kann ich eine Google Play Services-Version mit einer Installationsversion abgleichen?
quelle
Für Eclipse habe ich gerade einen Projektverweis auf die google-play-services_lib hinzugefügt in:
Eigenschaften-Android Stellen Sie im Bibliotheksbereich (unterer Bereich) sicher, dass die google-play-services_lib aufgelistet ist. Wenn nicht, klicken Sie auf die Schaltfläche Hinzufügen .. und wählen Sie google-play-services_lib aus.
quelle
Ich hatte das gleiche Problem, die version.xml-Datei befand sich nicht in google-play-services_lib. Starten Sie einfach Ihren SDK-Manager und akzeptieren Sie das Update, insbesondere die Dinge, die mit "Extras" zu tun haben.
quelle
Überprüfen Sie beim Importieren der google-play-services_lib den in AndroidManifest.xml und version.xml definierten Versionscode. Ich hatte den Unterschied im Versionscode gefunden und ihn in 4242000 geändert . Nach der Änderung tritt in @ integer / google_play_services_version kein Kompilierungsfehler mehr auf .
quelle
Behoben durch Hinzufügen von Google Play Services zu meinem Modul: App Gradle Build-Datei. In der Dokumentation wird auch angegeben, dass die Version aktualisiert werden soll, wenn Sie GMS aktualisieren.
quelle
Im Folgenden sind die wichtigsten Aktionen aufgeführt, mit denen viele Fehler bei der Verwendung des Google Play-Dienstes Lib vermieden werden:
quelle
Ich hatte das gleiche Problem mit einem Projekt mit Maven und IntelliJ. Google Play-Dienste werden als Maven-Abhängigkeit hinzugefügt. Der Maven-Build funktionierte gut über die Befehlszeile, aber IntelliJ beschwerte sich über dieses fehlende Symbol
@integer/google_play_services_version
In meinem Fall habe ich ein Update der Maven-POM-Dateien erzwungen und das Problem behoben.
quelle
In meinem Fall musste ich den Ordner "google-play-services_lib" im selben DRIVE der Quellcodes meiner Apps kopieren
quelle
Wenn Sie keine IDE verwenden, sondern Befehlszeilen-Builds (mit ant und ndk-build) verwenden, können Sie dies folgendermaßen lösen:
Installieren Sie alle erforderlichen Teile mit dem Befehl 'android'. Dann haben Sie eine Kopie von google-play-service_lib / in Ihrem Projektstamm. Bearbeiten Sie project.properties, um diese Zeile einzuschließen:
quelle
android update project -p . -t android-22
aufgoogle-play-services_lib
erste. Fügen Sie gleichwertig<property name="android.library.reference.1" value="./google-play-services_lib"/>
zu Ihrem hinzubuild.xml
(ich habe mein minimiertbuild.xml
und das weggeworfen.properties
).Ich hatte das gleiche Problem. Das Problem war, dass die Datei "google-play-services.jar" nicht ordnungsgemäß in mein Projekt importiert wurde , obwohl sie Teil des Projekts "google_play_service_lib" war. Wenn Sie Eclipse verwenden, überprüfen Sie, ob Sie die JAR-Datei für Wiedergabedienste im Abschnitt "Private Bibliotheken für Android" sehen können und ob diese von der Bibliothek exportiert wird.
Ich verwende Android SDK-Plattform-Tools Version 17 (nicht 19) und Android SDK-Tools Version 22.0.1
quelle
Ich habe gerade die Google Play-Dienste im Ordner "Extras" im Android SDK-Manager aktualisiert
quelle
Das Problem für mich war, dass sich das Bibliotheksprojekt und das Projekt, das Spieldienste verwendet, in verschiedenen Verzeichnissen befanden. Also nur:
quelle
Google schlägt vor, dass Sie kein Projekt direkt aus dem SDK-Verzeichnis erstellen. Es ist besser, das lib-Projekt an den Speicherort Ihrer App zu kopieren und von dort zu importieren. Andernfalls wird das Projekt beim nächsten Import für eine andere App bereits verwendet.
https://developer.android.com/google/play-services/setup.html
quelle
Jeder, der 2017 nach der 10.0.1-Version von Play Services sucht, muss importiert werden
play-services-basement
(Verwendung inplay-services-base
).quelle
Android Studio 3.3.2 unter Windows 10
Datei -> Caches ungültig machen / neu starten und
invalidate and Restart
Schaltfläche auswählen im Dialogfeld angezeigt .quelle
Ich hatte das gleiche Problem, füge diese 2 Zeilen in dein build.gradle ein, das Problem wird wahrscheinlich behoben sein. ;)
quelle