Aktualisierung der Google Play Services-Bibliothek und fehlendes Symbol @ integer / google_play_services_version

Wenn Sie mein Projekt auf die neueste Version von Google Play Services ( v4.0, veröffentlicht an Halloween 2013 ) aktualisieren, sollten Sie jetzt ein neues Tag in die Datei AndroidManifest.xml .

  

Leider, wenn ich das versuche, bekomme ich dann diesen Kompiliererrors:

 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 google-play-services_lib/res/values/version.xml navigieren und die rohe Ganzzahl für dieses Symbol anzeigen:

 4030500 

Und dann AndroidManifest.xml es wieder in meine AndroidManifest.xml :

  

Dies funktioniert absolut einwandfrei und ich kann das Projekt und die App dann kompilieren und ausführen. Aber es ist definitiv eine unerwünschte Lösung mit offensichtlichen Problemen mit der Aktualisierbarkeit.

Irgendwelche Ideen?

Also für jeden, der eclipse benutzt, ist es so:

Eclipse -> Import -> bestehender Android-Code -> browse -> navigiere zu google-play-services_lib FOLDER (android-sdk / extras / google / google_play_services / libproject).

dann, auf Ihrem Projekt, klicken Sie auf -> Eigenschaften -> Android -> Bibliotheken, Hinzufügen -> wählen Sie das Projekt, das Sie gerade importiert -> ok

Bitte beachten Sie, dass dieser Fix möglicherweise nur für IntelliJ-Benutzer gilt !! (Weitere Informationen am Ende dieses Posts, die für alle gelten sollten.)

Dieses Problem wurde behoben! Ich benutze IntelliJ und es stellte sich heraus, dass ich die Art und Weise, wie ich das Modul google-play-services_lib als Abhängigkeit einschloss, falsch konfiguriert hatte.

Da ich dies komplett über GUI und überhaupt nicht durch Bearbeiten von Dateien behoben habe, hier ein paar Screenshots:

Schritt 1 - Initiale Projektstruktur So sah meine Projektstruktur so aus …

Schritt 2 - Google-Play-Services-Bibliothek entfernt Dann habe ich die google-play-services Bibliothek aus meiner Beziehungsliste entfernt, indem ich sie ausgewählt habe und dann unten auf die Minus-Schaltfläche geklickt habe. Beachten Sie den Fehler unten im Dialogfeld, da mein Projekt diese Bibliothek absolut benötigt. Aber keine Sorge, wir werden es bald wieder hinzufügen!

Schritt 3 - Google-Play-Dienste als Modulabhängigkeit hinzugefügt Als Nächstes habe ich google-play-services_lib als Modulabhängigkeit anstelle einer Bibliotheksabhängigkeit hinzugefügt. Dann drücke ich mehrmals auf den Pfeil nach oben, um diese Abhängigkeit an den Anfang der Liste zu verschieben. Aber beachte den Fehler unten (wir sind noch nicht fertig!)

Schritt 4 - Klicken Sie auf die Glühbirne, um die Google-Play-Services-Bibliothek als Abhängigkeit hinzuzufügen Ich klickte dann auf die Glühbirne am unteren Rand des Dialogfelds im Bereich der Fehlermeldung, um dieses kleine Popup zu öffnen, das zwei Auswahlmöglichkeiten bietet ( Zu Abhängigkeiten hinzufügen oder Bibliothek entfernen ). Klicken Sie auf die Option Zu Abhängigkeiten hinzufügen … !

Schritt 5 - Fügen Sie die Bibliothek zum Modul google-play-services_lib hinzu Ein neues kleines Dialogfenster sollte aufgetaucht sein. Es gab mir zwei Möglichkeiten, eine für mein Hauptprojekt (der Name ist verschwommen) und dann eine weitere für das Projekt google-play-services_lib . Je nach Ihrem Projekt haben Sie vielleicht eine Menge mehr (wie Sie actionbarsherlock sehen actionbarsherlock , actionbarsherlock Sachen). Wählen Sie google-play-services_lib und klicken Sie auf OK!

Und schließlich bist du fertig! Ich hoffe, das hilft jemand anderem da draußen!

Weitere Informationen

Ich glaube, der Grund, warum dieses Problem anfing, liegt darin, dass ich dachte, dass ich das gesamte Projekt google-play-services_lib richtig in mein Gesamtprojekt aufgenommen hatte … aber ich hatte es tatsächlich nicht und hatte stattdessen nur sein Glas richtig eingefügt Datei ( google-play-services_lib/libs/google-play-services.jar ). Diese JAR-Datei enthält nur Code und keine Ressourcenwerte für Android. @integer/google_play_services_version war der @integer/google_play_services_version Wert nie wirklich in meinem Projekt enthalten. Aber der Code konnte in meinem Projekt verwendet werden, und so schien es, als wäre alles in Ordnung.

Und als eine Randnotiz scheint die Behebung dieses Problems 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, nicht wirklich 100% sicher.

Ich hatte das selbe Problem und offenbar hat Eclipse die Datei version.xml in / res / values ​​beim Erstellen einer Kopie irgendwie vom ursprünglichen Projekt google-play-services_lib . Ich zog die Datei aus dem ursprünglichen Projekt und fügte sie in meine Kopie des Projekts und das Problem ist behoben.

In Eclipse habe ich nach dem Import der Google Play-Bibliothek in den Projektarbeitsbereich einfach die version.xml- Datei kopiert

 google-play-services_lib/res/values/version.xml 

zu

 MyProjectName/res/values/version.xml 

Für alle, die Gradle verwenden: Schließen Sie die Projektquelle nicht ein, sondern laden Sie sie mit SDK Manager herunter und fügen Sie diese Zeile den Abhängigkeiten hinzu:

 compile 'com.google.android.gms:play-services:4.0.30' 
  1. Installieren Sie “Google Play Services” und “Google Repository” vom Android SDK Manager.
  2. Fügen Sie die Zeile compile 'com.google.android.gms:play-services:4.1.32@aar' zu Ihrem build.gradle .
  3. Als Ergebnis wird die Ressource @integer/google_play_services_version verfügbar sein.

Es sieht so aus, als ob Ihr Projekt mit einer älteren Version des Play Services-Bibliotheksprojekts verbunden ist. Der empfohlene Ansatz von Google 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, auch Ihre Kopie durch eine neue Kopie ersetzen müssen.

Nach dem Update auf die letzte Version hatte ich dieses Problem mit all meinen Projekten, aber es wurde getriggers, indem ich einfach die Bibliotheksreferenz hinzufügte:

Wenn Sie die Bibliothek nicht in Ihrem Arbeitsbereich in Eclipse haben, können Sie sie hinzufügen: File -> Import -> Existing Android Code Into Workspace -> navigieren Sie zu google-play-services_lib project lib, ( android-sdk/extras/google/google_play_services/libproject ).

Bildbeschreibung hier eingeben

Dann lösche ich die Ordner /bin und /gen meines Projekts (ähnlich wie bei der Option “clean”) und baue mein Projekt erneut auf.

Ich bin auch darüber gestolpert, während ich versucht habe, google_play_services_froyo zu verwenden.

Ich habe diesen Fehler eingereicht: https://code.google.com/p/google-plus-platform/issues/detail?id=734

Getriggers für Eclipse

Befolgen Sie die folgenden Schritte:

  1. Importieren Sie den Ordner google-play-services_lib als Projekt, indem Sie Import-> Vorhandener Android-Code in Arbeitsbereich verwenden
  2. Wählen Sie in den Projekteigenschaften den Android-Bereich unten. Klicken Sie im Abschnitt Bibliothek auf Hinzufügen und wählen Sie die Datei google-play-services_lib und Apply. Folgen Sie dem Link http://i.stack.imgur.com/opSeJ.png , um den Screenshot zu sehen

Auf der Google-Website für Android-Entwickler finden Sie statementen zum Hinzufügen von Google Play-Diensten zu Ihrem Projekt. Sie sind auch relevant für das Aktualisieren der Play-Services-Version. Es gibt sogar ein Dropdown-Menü, um statementen für Eclipse, Android Studio oder “Etwas anderes” anzuzeigen. Das wäre der beste Ort, um statementen zu sehen, falls sie sich ändern. Die Seite ist hier:

http://developer.android.com/google/play-services/setup.html

Da die meisten Antworten hier auf Eclipse verweisen, finden Sie hier eine kurze Zusammenfassung zum Aktualisieren von Play Services mit Android Studio

  1. Öffnen Sie die Datei build.gradle in Ihrem Anwendungsmodulverzeichnis. Hinweis: Android Studio-Projekte enthalten eine build.gradle-Datei auf oberster Ebene und eine build.gradle-Datei für jedes Modul. Achten Sie darauf, die Datei für Ihr Anwendungsmodul zu bearbeiten.
  2. Aktualisieren Sie die Erstellungsregel unter “Abhängigkeiten”, um auf die Version der Play-Services zu verweisen, die Sie auf Ihren Entwicklungscomputer heruntergeladen haben.

Sie finden die Versionsnummer für die Version von play-services, die Sie auf Ihren Entwicklungscomputer heruntergeladen haben, indem Sie im Ordner \ sdk \ extras \ google \ m2repository \ com \ google \ android \ gms \ play-services nachsehen, wie hier beschrieben : Wie kann ich eine Google Play Services-Version mit einer Installationsversion abgleichen?

Für Eclipse habe ich gerade den Projektverweis zur google-play-services_lib hinzugefügt:

Eigenschaften-Android Stellen Sie sicher, dass die google-play-services_lib im Bereich Bibliothek (unterer Bereich) aufgeführt ist. Falls nicht, klicken Sie auf Hinzufügen und wählen Sie google-play-services_lib.

Ich hatte dasselbe Problem, die Datei version.xml war nicht in Google-play-services_lib. Starten Sie einfach den sdk-Manager und akzeptieren Sie das Update, insbesondere die Dinge, die mit “Extras” zu tun haben.

Überprüfen Sie beim Importieren der google-play-services_lib den in AndroidManifest.xml und version.xml definierten Versionscode. Ich habe den Unterschied im Versionscode gefunden und ändere ihn in 4242000 . Nach der Änderung gibt es keinen Kompilierungserrors mehr in @ integer / google_play_services_version . Bildbeschreibung hier eingeben

Durch Hinzufügen der Google Play-Dienste zu meiner Modul: app gradle-Build-Datei behoben. Die Dokumentation fordert auch, die Version zu aktualisieren, wenn Sie GMS aktualisieren.

 dependencies { compile 'com.google.android.gms:play-services:9.6.1' } 

Im Folgenden sind die wichtigsten Aktionen aufgeführt, mit denen Sie viele Fehler vermeiden können, wenn Sie den Google Play Service Lib verwenden:

  1. Stellen Sie sicher, dass Sie das lib-Projekt in den Eclipse-Projektarbeitsbereich kopieren.
  2. Das Ziel-SDK für das Google Play-Dienstbibliotheksprojekt sollte “Google” lauten
  3. API “3- Meta-Daten sollten zur Manifest-Datei hinzugefügt werden.
  4. Ihr Ziel-SDK für das Projekt sollte 17 sein, wenn Sie nicht vollständig auf 19 aktualisiert haben, da in einigen Fällen 19 nicht gut funktioniert.

In meinem Fall musste ich den google-play-services_lib FOLDER im selben DRIVE der Quellcodes meiner Apps kopieren

  • F: \ Produkte \ Android \ APP * .java < - Meine Apps sind hier, also kopiere ich in den Ordner unten
  • F: \ Produkte \ Android \ libs \ google-play-services_lib

Wenn Sie keine IDE verwenden, sondern Befehlszeilen-Builds (mit ant und ndk-build) verwenden, können Sie dies wie folgt 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 einzufügen:

 android.library.reference.1=./google-play-services_lib 

Ich hatte das gleiche Problem. Das Problem war, dass die “google-play-services.jar” nicht korrekt in mein Projekt importiert wurde , obwohl es Teil des google_play_service_lib-Projekts war. Wenn Sie Eclipse verwenden, überprüfen Sie bitte, ob Sie die JAR-Datei für die Wiedergabedienste im Abschnitt “Android Private Libraries” sehen können und ob diese von der Bibliothek exportiert wird.

Ich verwende Android SDK Platform Tools Version 17 (nicht 19) und Android SDK Tools Version 22.0.1

Ich habe gerade die Google Play-Dienste im Android SDK-Manager im Ordner “Extras” aktualisiert

Das Problem für mich war, dass das Bibliotheksprojekt und das Projekt mit Play Services in verschiedenen Verzeichnissen waren. Also nur:

  • 1. Fügen Sie die Dateien zum selben Arbeitsbereich hinzu und entfernen Sie die Bibliothek.
  • 2.Restart Finsternis
  • 3. Fügen Sie das Bibliotheksprojekt erneut hinzu
  • 4. Löschen

Ich hatte das gleiche Problem mit einem Projekt mit Maven und IntelliJ. Google Play-Dienste werden als Maven-Abhängigkeit hinzugefügt. Die Maven-Erstellung funktionierte gut über die Befehlszeile, aber IntelliJ beschwerte sich über dieses fehlende Symbol @integer/google_play_services_version

In meinem Fall erzwang ich ein Update der maven POM-Dateien und es triggerse das Problem.

Google schlägt vor, dass Sie ein Projekt nicht direkt aus dem SDK-Verzeichnis erstellen. Es ist besser, das lib-Projekt an den Ort zu kopieren, an dem sich Ihre App befindet, und es dann von dort zu importieren. Andernfalls wird das nächste Mal, wenn Sie das Projekt für eine andere App importieren, es bereits verwendet.

https://developer.android.com/google/play-services/setup.html

Hinweis: Sie sollten auf eine Kopie der Bibliothek verweisen, die Sie in Ihren Entwicklungsarbeitsbereich kopiert haben. Sie sollten die Bibliothek nicht direkt aus dem Android SDK-Verzeichnis referenzieren.

Wer im Jahr 2017 die Version 10.0.1 von Play Services sucht, benötigt den Import von play-services-basement (in der play-services-base ).