Обновление библиотеки сервисов Google Play и отсутствующий символ @integer / версия сервисов google play

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

<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" />

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

какие идеи?

24 ответов


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

Eclipse - > импорт - > существующий код android - > обзор - > перейдите в папку google-play-services_lib (android-sdk / extras/google/google_play_services / libproject).

затем в вашем проекте нажмите кнопку управления - > свойства - > android - > библиотеки, Добавить - > выберите проект, который вы только что импортировали - > ok


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

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

как я исправил это через GUI, а не путем редактирования каких-либо файлов, вот пара скринов:

Step 1 - Initial Project Structure Так моя структура проекта начиналась так...

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

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

Step 4 - Click the lightbulb to add the google-play-services library as a dependency Затем я щелкнул лампочку в нижней части диалогового окна в области сообщения об ошибке, чтобы вызвать это небольшое всплывающее окно, которое дает два варианта (добавить в зависимости... или Удалить Библиотеки). Нажмите добавить в зависимости...!

Step 5 - Add the library to the google-play-services_lib module Новое небольшое диалоговое окно должен был выскочить. Это дало мне два варианта: один для моего основного проекта (его имя размыто), а затем другой для . Ваш может иметь кучу больше в зависимости от вашего проекта (как вы можете видеть actionbarsherlock и все такое). Выберите google-play-services_lib и нажмите кнопку ОК!

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

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

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

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


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


в Eclipse после импорта библиотеки google play в рабочую область проекта я просто скопировал версия.в XML С

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

to

MyProjectName/res/values/version.xml

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

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

  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 будут доступны.

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


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

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

enter image description here

затем удалить /bin и /gen папки моего проекта (что-то похожее на чистый вариант) и дом мой снова проект.


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

Я подал эту ошибку: https://code.google.com/p/google-plus-platform/issues/detail?id=734


решено для Eclipse

выполните следующие действия:

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

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

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

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

  1. открыть сборки.gradle файл внутри каталога модуля приложения. Примечание: студия проектов Android содержат верхнего уровня сборки.файл gradle и сборка.gradle файл для каждого модуля. Обязательно отредактируйте файл для модуля приложения.
  2. обновите правило сборки в разделе "зависимости" для ссылки на версию play-services, загруженную на компьютере разработчика.

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


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

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


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


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


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

dependencies {

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

} 

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

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

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

  • F:\Products\Android\APP*.java
  • F:\Products\Android\libs\google-play-services_lib

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

установите все части req'D с помощью команды "android". Затем у вас есть копия google-play-service_lib / в корне вашего проекта. Редактировать проект.свойства для включения этой строки:

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

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

Я использую Android SDK platform tools версии 17 (не 19) и Android SDK tools версии 22.0.1


Я только что обновил сервисы Google Play в папке Extras в Android SDK Manager


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

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

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

в моем случае я принудительное обновление файлов Maven POM и это решило проблему.


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

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

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


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