Saat memutakhirkan proyek saya ke versi Google Play Services terbaru ( v4.0, dirilis pada Halloween 2013 ), Anda sekarang seharusnya menambahkan tag baru ke dalam AndroidManifest.xml
file.
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
Sayangnya, ketika saya mencoba melakukan itu, saya kemudian mendapatkan kesalahan kompilasi ini:
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').
Saya kemudian dapat menavigasi ke file di google-play-services_lib/res/values/version.xml
dan melihat integer mentah untuk simbol itu:
<integer name="google_play_services_version">4030500</integer>
Dan kemudian masukkan kembali ke AndroidManifest.xml
:
<meta-data
android:name="com.google.android.gms.version"
android:value="4030500" />
Melakukan ini bekerja dengan sangat baik dan saya kemudian dapat mengkompilasi dan menjalankan proyek dan aplikasi dengan baik. Tapi itu jelas merupakan perbaikan yang tidak diinginkan dengan masalah upgrade yang jelas.
Ada ide?
android
google-play-services
Charles Madere
sumber
sumber
Jawaban:
Untuk semua orang yang menggunakan Eclipse, ini adalah bagaimana Anda harus melakukannya.
Kemudian, pada proyek Anda
sumber
.project
file digoogle-play-services_lib
direktori yang ditunjukkan . Jelas, alasan langsungnya adalah bahwa Eclipse tidak dapat menulis di direktori Program Files, di mana SDK berada, tetapi pertanyaan yang lebih konkret adalah mengapa memodifikasi.project
file (yang tampaknya milik SDK dan karenanya harus "benar") diperlukan di tempat pertama.Harap dicatat bahwa perbaikan ini hanya berlaku untuk pengguna IntelliJ !! (Informasi lebih lanjut di bagian bawah posting ini yang seharusnya berlaku untuk semua orang.)
Atasi masalah ini! Saya menggunakan IntelliJ dan ternyata saya baru saja salah mengonfigurasi cara saya memasukkan
google-play-services_lib
modul sebagai dependensi.Karena saya memperbaiki ini sepenuhnya melalui GUI dan tidak sama sekali dengan mengedit file apa pun, berikut adalah beberapa tangkapan layar:
Jadi Struktur Proyek saya mulai terlihat seperti ini ...
Kemudian saya menghapus
google-play-services
perpustakaan dari daftar dependensi saya dengan memilihnya dan kemudian mengklik tombol minus di bagian bawah. Perhatikan kesalahan di bagian bawah dialog, karena proyek saya benar-benar membutuhkan pustaka ini. Tapi jangan khawatir, kami akan segera menambahkannya kembali!Selanjutnya saya menambahkan
google-play-services_lib
sebagai ketergantungan modul bukan ketergantungan perpustakaan. Lalu saya tekan tombol panah atas di bagian bawah beberapa kali untuk memindahkan ketergantungan ini ke atas daftar. Tetapi perhatikan kesalahan di bagian bawah (kita masih belum selesai!)Saya kemudian mengklik bola lampu di bagian bawah dialog di area pesan kesalahan untuk memunculkan popup kecil kecil ini yang memberikan dua pilihan ( Tambahkan ke dependensi ... atau Hapus Perpustakaan ). Klik opsi Tambahkan ke dependensi ... !
Jendela dialog kecil baru seharusnya muncul. Itu memberi saya dua pilihan, satu untuk proyek utama saya (namanya kabur), dan satu lagi untuk
google-play-services_lib
proyek. Milik Anda mungkin lebih banyak tergantung pada proyek Anda (seperti yang Anda lihatactionbarsherlock
, hal-hal seperti itu). Pilihgoogle-play-services_lib
dan klik oke!Dan akhirnya, Anda selesai! Saya harap ini membantu orang lain di luar sana!
Info lebih lanjut
Saya percaya alasan bahwa masalah ini terjadi adalah karena saya pikir saya telah memasukkan seluruh
google-play-services_lib
proyek dengan baik ke dalam keseluruhan proyek saya ... tapi saya sebenarnya tidak, dan sebaliknya hanya memasukkan file jarnya dengan benar (google-play-services_lib/libs/google-play-services.jar
). File jar itu hanya mencakup kode, bukan nilai sumber daya Android, dan dengan demikian@integer/google_play_services_version
nilainya tidak pernah benar - benar ada di proyek saya. Tetapi kode tersebut dapat digunakan dalam proyek saya, dan itu membuatnya tampak seperti semuanya baik-baik saja.Dan sebagai catatan tambahan, memperbaiki masalah ini juga tampaknya telah memperbaiki
GooglePlayServicesUtil.getErrorDialog(...).show()
crash yang dulu saya miliki. Tapi itu juga bisa diperbaiki dengan pembaruan, tidak benar-benar 100% yakin di sana.sumber
Saya menghadapi masalah yang sama, dan ternyata Eclipse entah bagaimana meninggalkan
version.xml
file dalam / res / values darigoogle-play-services_lib
proyek asli sambil membuat salinan. Saya menarik file dari proyek asli dan menempelkannya di salinan proyek dan masalahnya sudah diperbaiki.sumber
Di Eclipse, setelah mengimpor perpustakaan google play ke ruang kerja proyek saya hanya menyalin file version.xml dari
untuk
sumber
version.xml
file dengan setiap peningkatan.Bagi siapa pun yang menggunakan gradle: jangan sertakan sumber proyek, tetapi unduh dengan menggunakan SDK Manager dan tambahkan baris ini ke dependensi:
sumber
compile 'com.google.android.gms:play-services:4.1.32@aar'
kebuild.gradle
.@integer/google_play_services_version
akan tersedia.sumber
Tanpa sadar, rasanya proyek Anda terhubung ke versi yang lebih lama dari proyek perpustakaan Layanan Play. Pendekatan yang disarankan, oleh Google, adalah bagi Anda untuk menemukan proyek perpustakaan di SDK dan membuat salinan lokal. Namun, ini berarti bahwa setiap kali Anda memperbarui proyek perpustakaan Layanan Play melalui SDK Manager, Anda juga perlu mengganti salinan Anda dengan salinan baru.
sumber
Saya juga berlari melintasi ini ketika mencoba menggunakan google_play_services_froyo.
Saya mengajukan bug ini: https://code.google.com/p/google-plus-platform/issues/detail?id=734
sumber
setelah pembaruan ke versión terakhir saya punya masalah dengan semua proyek saya, tetapi diselesaikan hanya dengan menambahkan lagi referensi perpustakaan:
jika Anda tidak memiliki perpustakaan di ruang kerja Anda di Eclipse Anda dapat menambahkannya dengan:
File
->Import
->Existing Android Code Into Workspace
-> jelajahi dan navigasi kegoogle-play-services_lib
project lib, (android-sdk/extras/google/google_play_services/libproject
).kemudian menghapus
/bin
dan/gen
folder proyek saya (sesuatu yang mirip dengan opsi bersih) dan membangun proyek saya lagi.sumber
Dipecahkan untuk Eclipse
Ikuti langkah-langkah berikut:
sumber
google-play-services_lib
berada diF:\Android\sdk\extras\google\google_play_services\libproject\google-play-services_lib
Situs Pengembang Android Google memiliki instruksi tentang cara "Menambahkan Layanan Google Play ke Proyek Anda", dan mereka juga relevan dengan cara meningkatkan versi Layanan Play. Bahkan ada menu drop down untuk melihat instruksi untuk Eclipse, Android Studio, atau "Sesuatu yang lain". Itu akan menjadi tempat terbaik untuk melihat instruksi jika mereka berubah. Halamannya ada di sini:
http://developer.android.com/google/play-services/setup.html
Tetapi karena sebagian besar jawaban di sini adalah untuk Eclipse, berikut adalah ringkasan singkat untuk memutakhirkan Layanan Play dengan Android Studio
Anda dapat menemukan nomor versi untuk versi play-services yang telah Anda unduh di mesin pengembangan Anda dengan melihat di folder \ sdk \ ekstra \ google \ m2repositori \ com \ google \ android \ gms \ play-services, seperti dijelaskan di sini : Bagaimana cara mencocokkan revisi Google Play Services dengan versi instal?
sumber
Untuk Eclipse, saya baru saja menambahkan referensi proyek ke google-play-services_lib di:
Properties-Android Di panel Library (panel bawah), pastikan bahwa google-play-services_lib terdaftar. Jika tidak, klik tombol Tambah .. dan pilih google-play-services_lib.
sumber
Saya memiliki masalah yang sama, file version.xml tidak ada di google-play-services_lib. Mulai saja Anda manajer sdk dan terima pembaruan terutama hal-hal yang berkaitan dengan "ekstra".
sumber
Saat mengimpor google-play-services_lib, periksa kode versi yang ditentukan dalam AndroidManifest.xml dan version.xml. Saya telah menemukan perbedaan dalam kode versi dan mengubahnya ke 4242000 . Setelah melakukan perubahan, tidak ada lagi kesalahan kompilasi di @ integer / google_play_services_version .
sumber
Diperbaiki dengan menambahkan Layanan Google Play ke Modul saya: file build gradle aplikasi. Dokumentasi juga mengatakan untuk memperbarui versi ketika Anda memperbarui RUPS.
sumber
Di bawah ini adalah tindakan utama yang akan menghindari banyak kesalahan saat menggunakan layanan Google play Lib:
sumber
Saya memiliki masalah yang sama dengan proyek menggunakan Maven dan IntelliJ. Layanan Google Play ditambahkan sebagai ketergantungan maven. Bangunan pakar bekerja dengan baik dari baris perintah, tetapi IntelliJ mengeluh tentang simbol yang hilang ini
@integer/google_play_services_version
Dalam kasus saya, saya memaksa pembaruan file POM maven dan itu memecahkan masalah.
sumber
Dalam kasus saya, saya harus menyalin FOLDER google-play-services_lib dalam DRIVE yang sama dengan kode sumber aplikasi saya
sumber
Ketika tidak menggunakan IDE, tetapi menggunakan build baris perintah (menggunakan semut dan ndk-build), ini adalah cara mengatasinya:
Instal semua bagian yang diperlukan dengan perintah 'android'. Kemudian miliki salinan google-play-service_lib / di root proyek Anda. Edit project.properties untuk memasukkan baris ini:
sumber
android update project -p . -t android-22
digoogle-play-services_lib
pertama. Setara, tambahkan<property name="android.library.reference.1" value="./google-play-services_lib"/>
ke Andabuild.xml
(saya meminimalkanbuild.xml
dan membuang.properties
).Saya memiliki masalah yang sama. Masalahnya adalah "google-play-services.jar" tidak diimpor dengan benar ke proyek saya meskipun itu adalah bagian dari proyek google_play_service_lib. Jika Anda menggunakan Eclipse, silakan periksa dan lihat apakah Anda dapat melihat file jar layanan putar di bagian Android Private Libraries dan apakah ini diekspor oleh perpustakaan.
Saya menggunakan alat platform Android SDK versi 17 (bukan 19) dan perangkat Android SDK versi 22.0.1
sumber
Saya baru saja memperbarui layanan Google Play di bawah folder Extras di Android SDK Manager
sumber
Masalahnya bagi saya adalah bahwa proyek perpustakaan dan proyek yang menggunakan layanan bermain berada di direktori yang berbeda. Jadi hanya:
sumber
Google menyarankan Anda untuk tidak membuat proyek langsung dari direktori SDK. Lebih baik menyalin proyek lib ke lokasi di mana aplikasi Anda, lalu mengimpornya dari sana. Kalau tidak, lain kali Anda pergi untuk mengimpor proyek untuk aplikasi lain, itu sudah akan digunakan.
https://developer.android.com/google/play-services/setup.html
sumber
Siapa pun yang mencari di tahun 2017, versi 10.0.1 dari layanan permainan harus mengimpor
play-services-basement
(gunakan untuk berada diplay-services-base
).sumber
Android Studio 3.3.2 di bawah Windows 10
File -> Batalkan Cache / Restart dan pilih
invalidate and Restart
tombol dalam dialog muncul.sumber
Saya memiliki masalah yang sama, tambahkan 2 baris ini di build.gradle Anda masalahnya mungkin akan teratasi. ;)
sumber