Обновление библиотеки Google Play Services и отсутствующий символ @ integer / google_play_services_version

При обновлении моего проекта до последней версии Google Play Services (версия 4.0, выпущенная на Хэллоуин 2013 ), теперь вы должны добавить новый тег в файл AndroidManifest.xml .

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

К сожалению, когда я пытаюсь это сделать, я получаю эту ошибку компиляции:

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

Затем я могу перейти к файлу в google-play-services_lib/res/values/version.xml и просмотреть необработанное целое для этого символа:

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

А затем вставьте его обратно в мой AndroidManifest.xml :

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

Выполнение этого работает абсолютно нормально, и я могу скомпилировать и запустить проект и приложение просто отлично. Но это определенно нежелательное исправление с очевидными проблемами с возможностью обновления.

Есть идеи?

Solutions Collecting From Web of "Обновление библиотеки Google Play Services и отсутствующий символ @ integer / google_play_services_version"

Поэтому для всех, кто использует eclipse, так оно и делается:

Eclipse -> import -> существующий код Android -> browse -> перейти к google-play-services_lib FOLDER (android-sdk / extras / google / google_play_services / libproject).

Затем, в вашем проекте, нажмите «Клики -> Свойства -> Андроид -> библиотеки, добавьте -> выберите проект, который вы только что импортировали, -> ok

Обратите внимание, что это исправление может применяться только к пользователям IntelliJ! (Дополнительная информация внизу этой публикации, которая должна применяться ко всем.)

Исправлена ​​проблема! Я использую IntelliJ, и оказалось, что я просто неправильно сконфигурировал способ включения модуля google-play-services_lib в качестве зависимости.

Поскольку я исправил это полностью через графический интерфейс, а вовсе не редактируя какие-либо файлы, вот несколько скриншотов:

Шаг 1 - Начальная структура проекта Итак, моя структура проекта началась так …

Шаг 2 - Удалена библиотека google-play-services Затем я удалил библиотеку google-play-services из списка зависимостей, выбрав ее, а затем нажав кнопку минуса внизу. Обратите внимание на ошибку в нижней части диалогового окна, так как мой проект абсолютно нуждается в этой библиотеке. Но не волнуйтесь, мы скоро его добавим!

Шаг 3 - Добавлены сервисы google-play в качестве зависимости от модуля Затем я добавил google-play-services_lib в качестве зависимости от модуля вместо зависимости от библиотеки. Затем я нажимаю кнопку со стрелкой вверх внизу пару раз, чтобы переместить эту зависимость в верхнюю часть списка. Но обратите внимание на ошибку внизу (мы еще не закончили!)

Шаг 4 - Нажмите лампочку, чтобы добавить библиотеку google-play-services в качестве зависимости Затем я нажал на лампочку в нижней части диалогового окна в области сообщений об ошибках, чтобы отобразить это маленькое всплывающее окно, которое дает два варианта ( Добавить в зависимости … или Удалить библиотеку ). Нажмите кнопку Добавить в зависимости … !

Шаг 5 - добавьте библиотеку в модуль google-play-services_lib Появилось новое маленькое диалоговое окно. Это дало мне два варианта: один для моего основного проекта (его название размыто), а затем еще один проект google-play-services_lib . В зависимости от вашего проекта у вас может быть больше связки (например, вы можете увидеть actionbarsherlock , что-то вроде этого). Выберите google-play-services_lib и нажмите «ОК»!

И, наконец, все готово! Надеюсь, это поможет кому-то еще!

Дополнительная информация

Я считаю, что причина, по которой эта проблема начиналась, состоит в том, что я подумал, что правильно включил весь проект google-play-services_lib в свой общий проект … но на самом деле я этого не сделал и вместо этого только правильно включил его банку Файл ( google-play-services_lib/libs/google-play-services.jar ). Этот файл jar содержит только код, а не значения ресурсов Android, и поэтому значение @integer/google_play_services_version никогда не было в моем проекте. Но код мог быть использован в моем проекте, и это создавало впечатление, что все в порядке.

И в качестве побочной заметки, исправление этой проблемы также, похоже, GooglePlayServicesUtil.getErrorDialog(...).show() которая у меня была. Но это также может быть исправлено обновлением, а не на самом деле 100%.

Я столкнулся с той же проблемой, и, видимо, Eclipse каким-то образом оставил файл version.xml в / res / values ​​из исходного проекта google-play-services_lib при создании копии. Я вытащил файл из оригинального проекта и вставил его в свою копию проекта, и проблема исправлена.

В Eclipse после импорта библиотеки воспроизведения google в рабочую область проекта я просто скопировал файл version.xml из

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

в

 MyProjectName/res/values/version.xml 

Для любого, кто использует gradle: не включайте источник проекта, а загружайте его с помощью SDK Manager и добавьте эту строку в зависимости:

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

С манжетой кажется, что ваш проект подключен к более старой версии проекта библиотеки Play Services. Рекомендуемый подход Google – это поиск проекта библиотеки в SDK и создание локальной копии. Это означает, однако, что в любое время, когда вы обновляете проект библиотеки Play Services через SDK Manager, вам также необходимо заменить свою копию новой копией.

  1. Установите «Службы Google Play» и «Репозиторий Google» из Android SDK Manager.
  2. Добавьте строку compile 'com.google.android.gms:play-services:4.1.32@aar' в ваш build.gradle .
  3. В результате будет доступен ресурс @integer/google_play_services_version .

После обновления до последней версии я столкнулся с этой проблемой со всеми моими проектами, но было решено просто добавить ссылку на библиотеку:

Если у вас нет библиотеки в вашей рабочей области в Eclipse, вы можете добавить ее с помощью: File -> Import -> Existing Android Code Into Workspace в рабочую Existing Android Code Into Workspace -> просмотр и переход к google-play-services_lib project lib, ( android-sdk/extras/google/google_play_services/libproject ).

Введите описание изображения здесь

Затем удаление /bin и /gen папок моего проекта (что-то похожее на чистую опцию) и создание моего проекта еще раз.

Я также сталкивался с этим при попытке использовать google_play_services_froyo.

Я зарегистрировал эту ошибку: https://code.google.com/p/google-plus-platform/issues/detail?id=734

Решено для Eclipse

Следуйте следующим шагам:

  1. Импортируйте папку google-play-services_lib в качестве проекта, используя import-> Существующий код для Android в рабочее пространство
  2. В свойствах проекта выберите раздел Android, внизу. В разделе «Библиотека» нажмите «Добавить» и выберите «google-play-services_lib» и «Применить». Следуйте ссылке http://i.stack.imgur.com/opSeJ.png, чтобы увидеть скриншот

Для Eclipse я просто добавил ссылку на проект в google-play-services_lib в:

Свойства-Android В панели «Библиотека» (нижняя панель) убедитесь, что указан список google-play-services_lib. Если нет, нажмите кнопку «Добавить ..» и выберите google-play-services_lib.

На веб-сайте разработчика Google Android содержатся инструкции о том, как добавить службы Google Play в свой проект, и они также имеют отношение к обновлению версии Служебных услуг. Существует даже выпадающее меню для просмотра инструкций для Eclipse, Android Studio или «Что-то еще». Это было бы лучшим местом для просмотра инструкций в случае их изменения. Страница находится здесь:

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

Но так как большинство ответов здесь для Eclipse, вот краткий обзор для обновления Play Services с Android Studio

  1. Откройте файл build.gradle внутри вашего каталога модулей приложений. Примечание. Проекты Android Studio содержат файл build.gradle верхнего уровня и файл build.gradle для каждого модуля. Обязательно отредактируйте файл для своего прикладного модуля.
  2. Обновите правило сборки в разделе «зависимости», чтобы передать версию игровых сервисов, загруженных на вашу машину разработки.

Вы можете найти номер версии для версии игровых сервисов, которую вы загрузили на своей машине разработки, заглянув в папку \ sdk \ extras \ google \ m2repository \ com \ google \ android \ gms \ play-services, как описано здесь. : Как сопоставить версию Google Play Services с установленной версией?

У меня была такая же проблема, файл version.xml не был в google-play-services_lib. Просто запустите диспетчер sdk и примите обновление, особенно вещи, связанные с «дополнительными функциями».

При импорте google-play-services_lib проверьте код версии, определенный в AndroidManifest.xml и version.xml. Я нашел разницу в коде версии и изменил ее на 4242000 . После внесения изменения больше не возникает ошибка компиляции в @ integer / google_play_services_version . Введите описание изображения здесь

Ниже приведены основные действия, которые позволят избежать множества ошибок при использовании сервиса Google Play Lib:

  1. Обязательно скопируйте проект lib в рабочее пространство проектов Eclipse.
  2. Целевой SDK для проекта Google play-сервиса должен быть «Google
  3. API ". 3-Метаданные должны быть добавлены в файл манифеста.
  4. Целевой SDK для вашего проекта должен быть 17, если вы полностью не обновлены до 19, потому что в некоторых случаях 19 не работают хорошо.

В моем случае мне нужно было скопировать папку google-play-services_lib FOLDER в том же DRIVE исходных кодов моих приложений

  • F: \ Products \ Android \ APP * .java <- Мои приложения здесь, поэтому я скопировал их в папку ниже
  • F: \ Products \ Android \ ЛИЭС \ Google-игра-services_lib

Если вы не используете IDE, а используете сборку командной строки (используя ant и ndk-build), вот как это решить:

Установите все детали req'd с помощью команды android. Затем введите копию google-play-service_lib / в корневой каталог проекта. Измените project.properties, чтобы включить эту строку:

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

Исправлено добавлением сервисов Google Play к модулю сборки модуля:. В документации также говорится обновить версию при обновлении GMS.

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

Я была такая же проблема. Проблема заключалась в том, что «google-play-services.jar» не был должным образом импортирован в мой проект, хотя он был частью проекта google_play_service_lib. Если вы используете Eclipse, проверьте и посмотрите, можете ли вы увидеть файл jar в игровом сервисе в разделе «Частные библиотеки Android» и если он экспортируется библиотекой.

Я использую инструменты платформы Android SDK версии 17 (не 19) и Android SDK 22.0.1

Я только что обновил службы Google Play в папке «Дополнительно» в Android SDK Manager

Проблема для меня заключалась в том, что проект библиотеки и проект с использованием игровых сервисов были в разных каталогах. Так просто:

  • 1. Добавьте файлы в ту же рабочую область, затем удалите библиотеку.
  • 2.Restart eclipse
  • 3.Добавить проект библиотеки снова
  • 4.Clear

У меня была та же проблема с проектом с использованием Maven и IntelliJ. Службы Google Play добавляются как зависимость от maven. Конструкция maven отлично работала из командной строки, но IntelliJ жаловался на этот недостающий символ @integer/google_play_services_version

В моем случае я принудительно обновил файлы mob maven и решил проблему.

Google предлагает вам не создавать проект непосредственно из каталога SDK. Лучше скопировать проект lib в место, где находится ваше приложение, а затем импортировать его оттуда. В противном случае при следующем запуске проекта для другого приложения он уже будет использоваться.

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

Примечание. Вы должны ссылаться на копию библиотеки, которую вы скопировали в рабочую область разработки, – вы не должны ссылаться на библиотеку непосредственно из каталога Android SDK.

Любой, кто ищет в 2017 году, версия игровых сервисов 10.0.1 требует импортировать play-services-basement (использовать их в play-services-base ).