Google Play hizmetleri sürümünü uygulamanızın manifestine mi ekliyorsunuz?


88

Bu eğiticiyi takip ediyorum: https://developers.google.com/maps/documentation/android/start#overview Google Haritalar'ın Android SDK içindeki bir uygulamaya nasıl ekleneceği hakkında.

Yaşadığım tek sorun bu kısımda (diğer her şeyi hatasız yaptım):

Edit your application's AndroidManifest.xml file, and add the following declaration within the

 <application> element. This embeds the version of Google Play services that the app was compiled with.

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

The error is:
   No resources found that match the given name (at 'value' with value '@integer/    
   google_play_services_version').

Aynı sorun için bu kişinin çözümünü izlemeye çalıştım: Google Play Hizmetleri Kitaplığı güncellemesi ve eksik @ integer / google_play_services_version simgesi

ama yine de aynı hatayı alıyorum. Herhangi bir yardım lütfen?


Eclipse bu konuda size sorun çıkarsa, bunu yapmayı deneyin: stackoverflow.com/a/19990244/166921
Kamil Szot

Yanıtlar:


100

Muhtemelen kitaplığınız doğru bir şekilde projeye bağlı değildir veya daha eski bir google-play-hizmetleri kitaplığı sürümüne sahip olduğunuz için çakışma ortaya çıkıyor ve Eclipse aptallaştı ..: S

Hayır, integers.xml dosyasına herhangi bir şey eklemenize gerek yoktur. Google play hizmetleri kitaplığını proje referansınıza uygun şekilde bağladığınızdaandroid:value="@integer/google_play_services_version" bulunacak ve gitmeye hazırsınız. Projenize kitaplık eklediğinizde, sadece bir tane daha temiz yapın ve komik Eclipse ortamı her şeyi doğru bir şekilde süpürür.

Bir sonraki oyun sürümü geldiğinde bu numarayı bir yere kodlarsanız, güncellemeniz gerekir. Ve bunu unutursanız, tekrar böcek aramak için zaman harcarsınız ..: S

Umarım yardımcı olmuştur. ;)


1
evet, android studio'da google play hizmetini modül olarak ekledim (kitaplık olarak değil), ancak bu modülü manifest dosyasının bulunduğu proje modülüme eklemeyi unuttum. Bu sorunu çözdü :)
Ragaisis

18
Teşekkürler, bu sorunumu çözdü. Eclipse / ADT'de bir kitaplık projesine referans vermek için aptalca adım adım açıklamalı bir kılavuz için lütfen Google Araçları belgelerine bakın . Görünüşe göre bir aptalım, çünkü kütüphaneyi "Java Build Path: Libraries" altına eklemeye çalışıyordum - uğraşmak yok.
Jeffro

Geç cevap verdiğim için özür dilerim ama evet, sorun buydu, kütüphane projemle doğru bir şekilde bağlantılı değildi!
Adz

1
Bunu Ant için nasıl yapmalı?
Dzmitry Lazerka

2
İşe yararsa, Android Studio'da birkaç adım daha atmam gerekti. Gitti: Proje Yapısı -> Uygulama -> Bağımlılıklar -> Kitaplık -> oyun hizmetleri (xxx) için seçenek eklemek için + tıklayın. Yeniden oluşturduğumda bir hata aldım ve kütüphane oyun hizmetleri eklendi ... 0.0. Ekstralar altında SDK Yöneticisinden Google Play Kod Depolarını kaçırdım. Geri döndüğümde ve bu adımları tekrarladığımda Kitaplık artık gerçek bir sürüm numarasına sahipti ve başarıyla yeniden oluşturuldu.
natur3

36

Çözümü aldım.

  • Adım 1: Paket gezgini'nde projenize sağ tıklayın (tutulmada sol taraf)
  • Adım 2: Android'e gidin.
  • Adım 3: Kitaplık bölümünde Kitaplık Ekle ... (google-play-services_lib)
    aşağıdaki buttes'e bakın

    • Kütüphane projesini şuradan kopyalayın:

    <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/

    • Android uygulama projelerinizi sürdürdüğünüz konuma. Eclipse kullanıyorsanız, kitaplık projesini çalışma alanınıza aktarın. Dosya> İçe Aktar'a tıklayın, Android> Mevcut Android Kodunu Çalışma Alanına Seçin ve içe aktarmak için kitaplık projesinin kopyasına göz atın.
    • Daha fazlası için buraya tıklayın .
  • 4. Adım: Uygula'yı tıklayın
  • 5. Adım: Tamam'ı tıklayın
  • Adım 6: Uygulamanızı paket Gezgini'nden yenileyin.
  • 7. Adım: Hatanın gittiğini göreceksiniz.

30

Gönderen burada

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

Bu hatayla karşılaştım çünkü orijinal kopyayı SDK dizininden referans aldım. Kitaplığı önce android çalışma alanına kopyaladığınızdan ve yalnızca ona başvurduğunuzdan emin olun. Eclipse'de, projeyi içe aktarırken "Projeleri çalışma alanına kopyala" seçeneğini işaretleyerek yapabilirsiniz.


3
aiaiai, bu kutuyu işaretlemediğim için saatler boşa gitti ... Bu cevabı bulduğuma sevindim! Google Dokümantasyonunda daha net olmalıdır.
Marius Hilarious

Ve bu benim
sorunumdu

Bu düzeltme benim için de çalıştı. Ama teknik olarak farkın ne olduğunu merak ediyor musunuz?
sivag1

Google, buradaki ekran görüntüsünü / talimatları güncellemelidir: developers.google.com/+/mobile/android/getting-started
ban-geoengineering

22

Android Studio'da bunu Gradle dosyanıza ekleyerek düzeltebilirsiniz:

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

DÜZENLE

Şimdi, güncellemeler ve yeni Gradle API nedeniyle kullanmanız gereken satır şudur:

implementation 'com.google.android.gms:play-services:12.0.0'

Bir önemli ipucu daha : Google Play Hizmetlerinin paketlenmiş sürümünü kullanmaktan kaçının, ancak uygulamanızın boyutunu küçültmesi ve gereksiz isabetleri 65.000 yöntem sınırına düşürmesi için gereken bağımlılıkları beyan etmeyi düşünün. Bunun gibi bir şey (ör. Haritalar için), yukarıdaki genel oyun hizmetleri kullanımından daha iyi olacaktır:

implementation 'com.google.android.gms:play-services-maps:12.0.0'

Teşekkürler - bu yardımcı oldu. Bu öğreticiyi yapmaya çalışıyorum ve bu hatayla karşılaştım ve çözümünüz bana yardımcı oldu: github.com/googledrive/android-demos
Simon

1
Sadece kademeli senkronizasyondan sonra projeyi temizlemem gerekiyordu ve eksik tam sayı hatası ortadan kalktı. Bu da iyi çalışıyor:compile 'com.google.android.gms:play-services-appindexing:7.8.0'
Someone Somewhere

2
Bunun eski bir Soru / Cevap olduğunu biliyorum ama insanlar hala tökezliyor, bu yüzden onu yeni AS3 ve Gradle API'lerine güncellemek ve tüm paket yerine belirli kitaplığı kullanma dürtüsünü vurgulamak mantıklıydı. Umarım orijinal yazarın sakıncası yoktur
Ewoks

7

Kitaplık referansını ekleyin, Propertes-> Androidseçeneğine gidin ve ardından kitaplığı ekleyin.

görüntü açıklamasını buraya girin

sonra sana ekle AndroidManifest.xml

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

3

Android Studio 1.2.1.1'de de aynı sorunu yaşadım. Sadece diğer cevaplar söylendi, ancak bağımlılıkları nereye ekleyeceğimi bulamadım. Sonunda Dosya-> Proje yapısı-> Bağımlılıklar altında buldum Bu menü size bağımlılığı Google Play Hizmetleri kitaplığına ekleme seçeneği sunacak.


AS 1.2'de belirsiz gezinme konusunda yardım için +1. Teşekkür ederim! Benim durumumda, başka bir geliştiriciden devredilen bir proje üzerinde çalışmamın ve SDK yöneticisi olan $ 'ı kullanarak oyun hizmetleri kitaplığının doğru sürümünü gerçekten yüklememiş olmamın bir faydası olmadı. Kitaplığı indirdikten / kurduktan sonra geri döndüm ve kaldırdım / tekrar ekledim ve derleme hatası gitti.
Anne Gunn


2

Benim durumumda, Google deposunu SDK yöneticisinden yüklemem gerekiyordu.


1

Ben de aynı hatayı alıyordum; Daha önce Google Haritalar için google-play-services_lib'i kurmuştum (ve iyi çalışıyordu) ancak daha sonra Manifest'ime meta-veri girişini eklemeyi denediğimde hatayı alıyordum. Yukarıdaki tüm önerileri denedim ama hiçbir şey onları doğru bir şekilde ilişkilendiremedi; Sonunda bağlantıyı projemden kaldırdım (proje özellikleri-Android, google-play-services_lib kitaplığını kaldır), ardından Eclipse çalışma alanından kaldırdım, diskteki dosyaları sildim ve son olarak SDK yöneticisini sıfırdan yeniden yüklemek için kullandım.

Bu nihayet hile yapıyor gibiydi; şimdi Eclipse meta veri girişini hatasız bırakmama izin verdi.


Aynı hatayı aldım, çalışma alanımdaki google-play-services kütüphanesinin kopyası eskiydi (yani tamsayı kaynağı içermiyordu) ve lib'i güncellenmiş bir sürümle değiştirmek hile yaptı.
Bianca Daniciuc

0

Çalışma alanını değiştirebilir ve ardından bu sorunu çözebilir ve ardından sabit projeyi ana çalışma alanınıza geri aktarabilirsiniz. Ayrıca gelecekte birine yardım etmesini ummak için 4 adım olmalıdır.


0

Bu hata, Google Play Hizmetlerinin yeni bir sürümünü indirdiğinizde ve en son SDK'yı yüklemediğinizde de ortaya çıkabilir. Bana olan buydu. Dolayısıyla, diğerlerinin de bahsettiği gibi, Google Play Hizmetlerini içeri aktarmaya çalışırsanız ve ardından konsolu açarsanız, bir derleme hatası görürsünüz. Durum böyleyse, tüm yeni Android SDK'larını yüklemeyi ve tekrar deneyin.


0

Bundan kurtulmak için aşağıdaki adımları uyguladım:

1) google oyun hizmetlerini android sdk'nize proje olarak aktarın. Sistemimde C: \ adt-bundle-windows-x86_64-20140702 \ sdk \ extras \ google \ google_play_services \ libproject \ google-play-services_lib konumunda bulunuyor

2) Android uygulamanız-> özellikler -> android

Pencerede

2.1) Proje oluşturma hedefinde Google API'lerine tıklayın 2.2) Alt çerçeveye google-play hizmetlerini ekleyin ve Tamam'a tıklayın

Umarım ne yapılacağına dair net talimat verir !!

Teşekkürler.


0

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

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

0

Google play hizmetleri kitaplığını projeden kaldırıp sdk->extras->googleklasörden bir kez daha eklemek sorunumu mükemmel bir şekilde çözdü.


0

Benim durumum için, Eclipse'imi yeniden başlatıyorum ve çalışıyor.

2 haftadır kapatmadan çalışıyorum, sanırım karışık gidiyor.

Yine de öneriniz için teşekkürler Ewoks!


0

Sürüm kodunu uygun kitaplık sürümü koduyla değiştirin, aşağıdaki gibi sorununuzu çözecektir:

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


-37

Projenizin "res / values" klasörüne bir "integers.xml" dosyası eklemeniz gerekecek. Dosyanın içeriği ...

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

6
bunu asla yapmayın, dinamik değil.
panchicore

2
Bu kesinlikle yapılması gereken yanlış şey. Ewoks'un cevabını stackoverflow.com/a/20068489/1450294
Michael Scheper
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.