Google Play Hizmetleri Kütüphanesi güncellemesi ve eksik sembolü @ integer / google_play_services_version


186

Projemi Google Play Hizmetlerinin en son sürümüne ( Cadılar Bayramı 2013'te yayınlanan v4.0) yükseltirken , artık AndroidManifest.xmldosyaya yeni bir etiket eklemeniz gerekiyor .

<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />

Ne yazık ki, bunu yapmaya çalıştığınızda, sonra bu derleme hatası alıyorum:

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').

Daha sonra adresindeki dosyaya gidebilir google-play-services_lib/res/values/version.xmlve bu sembolün ham tamsayısını görüntüleyebilirim:

<integer name="google_play_services_version">4030500</integer>

Ve sonra tekrar içine yerleştirin AndroidManifest.xml:

<meta-data
    android:name="com.google.android.gms.version"
    android:value="4030500" />

Bunu yapmak kesinlikle iyi çalışıyor ve daha sonra derlemek ve proje ve uygulamayı gayet iyi çalıştırabilir. Ancak, açıkça yükseltilebilirlik sorunları ile kesinlikle istenmeyen bir düzeltme.

Herhangi bir fikir?


şu anda tam olarak aynı problemi var - ancak tamsayıyı bulamadı.
Björn Hallström

Yanıtlar:


256

Eclipse kullanan herkes için böyle yapmalısınız.

Eclipse -> içe aktar -> mevcut android kodu -> göz at -> google-play-services_lib FOLDER'a (android-sdk / extras / google / google_play_services / libproject) gidin.

Ardından, projenizde

kontrol tıklayın -> özellikler -> android -> kütüphaneler, ekle -> yeni aldığınız projeyi seçin -> tamam


Bunu denedim ( klasörü bulmak için diğer sorudan gelen talimatları takip ederek), ancak Eclipse .projectdosyayı belirtilen google-play-services_libdizine yazamayacağını söylüyor . Açıkçası Eclipse, SDK'nın bulunduğu Program Files dizinine yazamaz, ancak daha somut soru, .projectdosyanın değiştirilmesinin (görünüşte SDK'ya ait olduğu ve bu nedenle "doğru" olması gerektiği) nedeninin daha somut bir sorudur. ilk başta.
VEYA Haritacı

Bunu daha önce görmedim, bu yüzden nasıl düzeltileceğini tam olarak bilmiyorum. Zaten, açıkça değiştirilmedikçe, hatanın klasör içinde olduğunu düşünmüyorum. Basitçe güncelliğini yitirmiş olması ve yeniden indirilmesi gerekebilir (sorun olması muhtemel değildir, ancak asla bilemezsiniz).
PSchuette

Kitaplığı eklemeye çalışırken veya projeyi içe aktarmaya çalışırken bu hatayla karşılaştınız mı?
PSchuette

Teşekkürler- Eclipse'de benim için çalıştı. Doğru yaptığımı sanıyordum, ama tekrar yaptım ve bu derleyici sorununu çözdü.
Anna Billstrom

4
İçe aktarmanız gereken KLASÖR burada: extras \ google \ google_play_services \ libproject
Kamil Szot

78

Bu düzeltmenin yalnızca IntelliJ kullanıcıları için geçerli olabileceğini lütfen unutmayın !! (Bu yayının altındaki herkes için geçerli olacak daha fazla bilgi.)

Bu sorun düzeltildi! Kullandığım IntelliJ ve ben sadece dahil oldu yolu yanlış yapılandırmadığınızdan vardı çıkıyor google-play-services_libbir bağımlılık olarak modül.

Bunu tamamen GUI aracılığıyla düzelttiğim ve herhangi bir dosyayı düzenleyerek değil, işte birkaç ekran görüntüsü:

Adım 1 - İlk Proje Yapısı Bu yüzden Proje Yapım böyle görünmeye başladı ...

Adım 2 - Google Play-Services kitaplığı kaldırıldı Daha sonra google-play-serviceskütüphaneyi seçip alt taraftaki eksi düğmesine tıklayarak bağımlılık listemden kaldırdım . Projem kesinlikle bu kütüphaneyi gerektirdiğinden, iletişim kutusunun altındaki hataya dikkat edin. Ama endişelenme, yakında tekrar ekleyeceğiz!

Adım 3 - Bir modül bağımlılığı olarak google-play-services eklendi Sonra google-play-services_libkütüphane bağımlılığı yerine modül bağımlılığı olarak ekledim . Sonra bu bağımlılığı listenin en üstüne taşımak için altta yukarı ok düğmesine birkaç kez basıyorum. Ancak alttaki hatayı fark edin (henüz işimiz bitmedi!)

4. Adım - Google play-services kitaplığını bağımlılık olarak eklemek için ampulü tıklayın Daha sonra iki seçenek ( Bağımlılıklara ekle ... veya Kütüphaneyi Kaldır ) veren bu küçük küçük açılır pencereyi getirmek için hata mesajı alanındaki iletişim kutusunun altındaki ampulü tıkladım . Click bağımlılıkları için Ekle ... seçenek!

Adım 5 - Kütüphaneyi google-play-services_lib modülüne ekleyin Yeni bir küçük iletişim penceresi açılmış olmalıdır. Bana iki seçenek verdi, biri ana projem için (adı bulanık) ve diğeri google-play-services_libproje için. Sizin projenize bağlı olarak bir sürü daha sahip olabilirsiniz (gördüğünüz actionbarsherlockgibi, bunun gibi şeyler). Seçin google-play-services_libve tıklayın tamam!

Ve son olarak, işiniz bitti! Umarım bu başka birine yardımcı olur!

Daha fazla bilgi

Bu sorunun başlamasının sebebinin , tüm projeyi genel projeme düzgün bir şekilde dahil ettiğimi düşündüğümden inanıyorum google-play-services_lib... ama aslında yapmadım ve bunun yerine sadece jar dosyasını ( google-play-services_lib/libs/google-play-services.jar) yerleştirdim. Bu jar dosyası, Android kaynak değerlerini değil, yalnızca kodu içerir ve bu nedenle @integer/google_play_services_versiondeğer, projemde hiçbir zaman gerçekten yoktu . Ancak kod projemde kullanılabildi ve böylece her şey yolunda gibi görünüyordu.

Ve bir yan not olarak, bu sorunu düzeltmek de GooglePlayServicesUtil.getErrorDialog(...).show()eskiden sahip olduğum çökmeyi düzeltmiş gibi görünüyor . Ancak bu güncelleme ile düzeltilebilirdi, orada% 100 emin değilim.


2
Benim için çalışmıyor. Ben "iki seçenek veren bu küçük küçük açılır
pencereyi

2
Sizin durumunuzda, Google Play Hizmetlerini projenizden tamamen kaldırmayı ve ardından tekrar içe aktarmayı deneyebilirim. Bu eksik tamsayı sorunu yalnızca Google Play Hizmetleri ilk etapta yanlış bir şekilde içe aktarıldığında ortaya çıktığı için, sıfırdan başlamak iyi bir fikir olabilir.
Charles Madere

1
@Vadorequest ayrıca google-play-services-lib modülünü seçebilir ve google-play-services.jar dosyasını modül bağımlılığı olarak ekleyebilirsiniz (! Google-play-services-lib modülüne!)
Su-Au Hwang

2
Bu yanıta (IntelliJ'ye özel) ek olarak, gerçekten kütüphane yöntemlerini / sınıflarını kullanmayı planlıyorsanız, Dosya> Proje Yapısı> google-play-services_lib modülünü seçin> Bağımlılıklar ve "Dışa Aktarıldı" google-play-services.jar
Su-Au Hwang

2
Özet: Bir modül olarak libproject dizin eklemek ve libproject dizinden tamsayı değeri elde etmek için ana proje için bir bağımlılık yapmak
John61590

31

Aynı sorunla karşı karşıya kaldım ve görünüşe göre Eclipse bir şekilde version.xmldosyayı google-play-services_libbir kopya yaparken orijinal projeden / res / değerleri içinde bıraktı . Dosyayı orijinal projeden aldım ve projemin kopyasına yapıştırdım ve sorun düzeltildi.


Bu da beni düzelten çözümdü, bana sorarsanız Google tarafından inanılmaz bir gözetim.
Henrique de Sousa

Teşekkürler dostum, bu sorunumu çözdü
Fabii

1
Bu benim sorunumu çözdü. Tutulma içe aktarma neden bu dosyayı atladı? Bir ipucu?
nizam.sp

24

Eclipse'de, google play kütüphanesini proje çalışma alanına aktardıktan sonra version.xml dosyasını

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

için

MyProjectName/res/values/version.xml

3
Bunu yapmak işe yarayacaktır, ancak sorun Google Play Hizmetleri kütüphanesinin daha yeni bir sürümüne geçmeyi biraz daha can sıkıcı hale getirmesidir. Muhtemelen version.xmldosyayı her yükseltmeyle değiştirmeniz gerekecektir .
Charles Madere

20

Gradle kullanan herkese: proje kaynağını dahil etmeyin, bunun yerine SDK Yöneticisi'ni kullanarak indirin ve bu satırı bağımlılıklara ekleyin:

compile 'com.google.android.gms:play-services:4.0.30'

Yalnızca bulamadığı için: Hata: ': app' projesini yapılandırırken bir sorun oluştu. > ': App: _debugCompile' yapılandırması için tüm bağımlılıklar çözülemedi. > Com.google.android.gms: play-services: 6.1. + İle eşleşen bir sürüm bulunamadı. Aşağıdaki konumlarda arandı: jcenter.bintray.com/com/google/android/gms/play-services/… jcenter.bintray.com/com/google/android/gms/play-services
matteo

dosya: /home/teo/Documents/programmi/android-studio-new/sdk/extras/android/m2repository/com/google/android/gms/play-services/maven-metadata.xml dosya: / home / teo / Belgeler / programmi / android-studio-new / sdk / ekstralar / android / m2repository / com / google / android / gms / play-services / İsteyenler: xxxxxxx: app: belirtilmemiş
matteo

Kütüphaneyi aradığı yol, sdk yöneticisinin gerçekten indirdiği konumla eşleşmiyor gibi görünüyor, ancak sembolik bir bağlantı oluşturduktan sonra bile sorun düzeltilmedi. Sanırım tam olarak hangi dosyayı veya klasörü bulması gerektiğini bulamıyorum. Herhangi bir fikir?
matteo

1
Hangi sürümlere sahip olduğunuzu görmek için: "ls -1 $ ANDROID_HOME / extras / google / m2repository / com / google / android / gms / play-services". Daha yeni sürümleri edinmek için SDK yöneticisini çalıştırın ve istediğiniz bileşenleri güncelleyin. Semboliklerle uğraşmayın.
Sofi Software LLC

12
  1. Android SDK Yöneticisi'nden "Google Play Hizmetleri" ve "Google Havuzu" nu yükleyin.
  2. Satırı, öğenize compile 'com.google.android.gms:play-services:4.1.32@aar'ekleyin build.gradle.
  3. Sonuç olarak kaynak kullanılabilir @integer/google_play_services_versionolacaktır.

1
Bu derlemeyi ekledim 'com.google.android.gms: play-services: 4.4.52'
powder366

bu benim için yaptı. Kimse build.gradle'daki bağımlılıklar bölümünün son sonucunun neye benzediğini yayınladı ... bu yararlı olurdu
snowking16

10

Manşet dışında, projeniz Play Hizmetleri kitaplığı projesinin eski bir sürümüne bağlı gibi görünüyor. Google tarafından önerilen yaklaşım, SDK'da kütüphane projesini bulmanız ve yerel bir kopya oluşturmanızdır. Ancak bu, Play Hizmetleri kitaplığı projesini SDK Yöneticisi aracılığıyla her güncelleştirdiğinizde, kopyanızı da yeni bir kopyayla değiştirmeniz gerektiği anlamına gelir.


Evet, Android SDK Yöneticisi ile indirilen dosyaların bir kopyasını çalışma dizinime yerleştirerek kütüphaneyi projeme entegre ettim. Ayrıca aynı şeyi yaparak kütüphaneyi bu yeni sürüme güncelledim (dosyaları Android SDK dizininden kopyaladım ve projemdeki mevcut dosyaların üzerine yazdım).
Charles Madere


7

Son sürümü güncellemeden sonra tüm projelerimle bu sorunu yaşadım, ancak sadece kütüphane referansını tekrar ekleyerek çözüldü:

Eclipse'de çalışma alanınıza kütüphaneniz yoksa şunları ekleyebilirsiniz: File-> Import-> Existing Android Code Into Workspace-> göz atın ve google-play-services_libproje lib'e gidin , ( android-sdk/extras/google/google_play_services/libproject).

resim açıklamasını buraya girin

Daha sonra silme /binve /genprojemin klasörler (temiz seçeneğine benzer bir şey) ve yine benim proje inşa.


ama bu apk 5mb ağır yapar
Siddharth

6

Tutulma için Çözüldü

Sonraki adımları izleyin:

  1. İmport-> Varolan Android Kodunu Çalışma Alanına kullanarak google-play-services_lib klasörünü proje olarak içe aktarın
  2. Proje özelliklerinden Android bölümünü seçin, alt kısımda Kütüphane bölümünde Ekle'yi tıklayın ve google-play-services_lib'i seçin ve Uygula Ekran görüntüsünü görmek için http://i.stack.imgur.com/opSeJ.png bağlantısını takip edin

Benim google-play-services_libolduF:\Android\sdk\extras\google\google_play_services\libproject\google-play-services_lib
Daniel Bonetti

5

Google'ın Android Geliştirici sitesinde, "Google Play Hizmetlerini Projenize Ekleme" konusunda talimatlar bulunur ve ayrıca Play Hizmetleri sürümünün nasıl yükseltileceği ile de ilgilidir. Eclipse, Android Studio veya "Başka bir şey" ile ilgili talimatları görüntülemek için bir açılır menü bile vardır. Değişmeleri durumunda talimatları görüntülemek için en iyi yer burası olacaktır. Sayfa burada:

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

Ancak buradaki yanıtların çoğu Eclipse için olduğundan, Android Studio ile Play Hizmetlerini yükseltmek için kısa bir özet

  1. Uygulama modülü dizininizin içindeki build.gradle dosyasını açın. Not: Android Studio projeleri, her modül için bir üst düzey build.gradle dosyası ve bir build.gradle dosyası içerir. Uygulama modülünüzün dosyasını düzenlediğinizden emin olun.
  2. "Bağımlılıklar" altındaki derleme kuralını, geliştirme makinenize indirdiğiniz oynatma hizmetleri sürümüne başvuracak şekilde güncelleyin.

Geliştirme makinenize indirdiğiniz play-services sürümünün sürüm numarasını burada açıklandığı gibi \ sdk \ extras \ google \ m2repository \ com \ google \ android \ gms \ play-services klasörünüze bakarak bulabilirsiniz. : Google Play Hizmetleri düzeltmesini yükleme sürümüyle nasıl eşleştirebilirim?


Sonunda Android yeni başlayanlar için iyi ve net bir cevap. Bu cevap daha yukarıda olmalıdır.
Jelle

4

Eclipse için, google-play-services_lib'e proje referansını ekledim:

Özellikler-Android Kütüphane bölmesinde (alt bölme), google-play-services_lib öğesinin listelendiğinden emin olun. Değilse, Ekle .. düğmesini tıklayın ve google-play-services_lib öğesini seçin.


3

Aynı sorunu yaşadım, version.xml dosyası google-play-services_lib'de değildi. Sadece sdk yöneticisi başlatmak ve özellikle "ekstralar" ile ilgili şeyler güncelleme kabul.


2

Google-play-services_lib dosyasını içe aktarırken AndroidManifest.xml ve version.xml'de tanımlanan sürüm kodunu kontrol edin. Sürüm kodundaki farkı buldum ve 4242000 olarak değiştirdim . Değişikliği yaptıktan sonra @ integer / google_play_services_version'da derleme hatası kalmadı .resim açıklamasını buraya girin


2
Bunu yapmanın iyi bir yolu değil. Google Play Hizmetlerini her güncellediğinizde manuel olarak güncellemeniz gerekir.
PSchuette

2

Module: app gradle derleme dosyama Google Play Hizmetleri eklenerek düzeltildi. Belgeler ayrıca GMS'yi güncellediğinizde sürümün güncelleneceğini söylüyor.

dependencies {

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

} 

1

Google oyun hizmeti Lib'i kullanırken birçok hatayı önleyecek ana eylemler aşağıdadır:

  1. Lib projesini Eclipse projeleri çalışma alanına kopyaladığınızdan emin olun.
  2. Google play hizmeti lib projesi için hedef SDK "Google" olmalıdır
  3. API "3- Manifest dosyasına meta veriler eklenmelidir.
  4. Tamamen 19'a güncelleme yapmadığınız sürece proje hedef SDK'nız 17 olmalıdır, çünkü bazı durumlarda 19 iyi çalışmaz.

1

Maven ve IntelliJ kullanan bir projede de aynı sorunu yaşadım. Google Play hizmetleri, bağımlı bir bağımlılık olarak eklenir. Maaven inşa komut satırından iyi çalıştı, ancak IntelliJ bu eksik sembol hakkında şikayet etti@integer/google_play_services_version

Benim durumumda maven POM dosyalarının güncellenmesini zorladım ve sorunu çözdü.


1

Benim durumumda, uygulamalarımın kaynak kodlarının aynı DRIVE'ında google-play-services_lib FOLDER'ı kopyalamam gerekiyordu

  • F: \ Products \ Android \ APP * .java <- Uygulamalarım burada, bu yüzden aşağıdaki klasöre kopyalandım
  • F: \ Ürünler \ Android \ kütüphanelerini \ google-play-services_lib

1

Bir IDE kullanmadığınızda, ancak komut satırı yapılarını (ant ve ndk-build kullanarak) kullanırken, bunu şu şekilde çözebilirsiniz:

Gerekli tüm parçaları 'android' komutuyla yükleyin. Ardından proje kökünüzde google-play-service_lib / dosyasının bir kopyasına sahip olun. Bu satırı eklemek için project.properties dosyasını düzenleyin:

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

Ama önce ihtiyacınız android update project -p . -t android-22var google-play-services_lib. Eşdeğer eklemek <property name="android.library.reference.1" value="./google-play-services_lib"/>adresinden Müşteri build.xml(kızkardeşimi minimize build.xmlve hendeğe .properties).
Ciro Santilli 法轮功 21 病 六四 事件 法轮功

0

Aynı sorunu yaşadım. Sorun, google_play_service_lib projesinin bir parçası olmasına rağmen "google-play-services.jar" öğesinin projeme düzgün bir şekilde aktarılmamasıydı . Eclipse kullanıyorsanız, lütfen Android Özel Kütüphaneler bölümünde play services jar dosyasını görüp göremediğinizi ve bunun kütüphane tarafından dışa aktarılıp aktarılmadığını kontrol edin.

Android SDK araçları sürüm 17 (19 değil) ve Android SDK araçları sürüm 22.0.1 kullanıyorum


0

Google Play hizmetlerini Android SDK Manager'daki Ekstralar klasörü altında güncelledim


0

Benim için sorun kütüphane projesi ve oyun hizmetlerini kullanan projenin farklı dizinlerde olmasıydı. Bu yüzden sadece:

  • 1. Dosyaları aynı çalışma alanına ekleyin ve kitaplığı kaldırın.
  • Tutulmayı Yeniden Başlat
  • 3.Kütüphane projesini tekrar ekleyin
  • 4.Clear

0

Google, doğrudan SDK dizininden bir proje oluşturmamanızı önerir. Lib projesini uygulamanızın bulunduğu yere kopyalamak, daha sonra oradan almak daha iyidir. Aksi takdirde, projeyi başka bir uygulama için bir sonraki içe aktardığınızda, zaten kullanımda olacaktır.

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

Not: Geliştirme çalışma alanınıza kopyaladığınız kitaplığın bir kopyasına başvuruyor olmalısınız; kitaplığa doğrudan Android SDK dizininden başvurmamalısınız.


0

2017 yılında bakanlar, oyun hizmetlerinin 10.0.1 sürümü içe aktarmayı gerektirir play-services-basement(içinde olmak için play-services-base).


Biraz daha açıklayabilir misiniz? Mevcut bağımlılıkları nasıl görebilirim ve daha fazlasını nasıl ekleyebilirim?
Hassan Gulzar

Bu yanıtı yazdığımda her şeyi manuel olarak ve deneme yanılma yoluyla yaptım. Gradle kullanmak işleri kolaylaştırdı.
goobliata

0

Windows 10 altında Android Studio 3.3.2

Dosya -> Önbellekleri Geçersiz Kıl / Yeniden Başlat ve invalidate and Restartiletişim kutusunda seç düğmesi belirir .


0

Ben de aynı sorunu vardı, build.gradle bu 2 satır ekleyin sorun muhtemelen çözülecektir. ;)

dependencies {  
  implementation 'com.google.android.gms:play-services:12.0.1'  
  implementation 'com.google.android.gms:play-services-vision:10.0.0'    
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.