Добавляете версию сервисов Google Play в манифест приложения?


88

Я следую этому руководству: https://developers.google.com/maps/documentation/android/start#overview о том, как добавить Карты Google в приложение в Android SDK.

Единственная проблема, с которой я столкнулся, возникла во время этого бита (все остальное я сделал без ошибок):

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

Я пытался следить за решением этой проблемы той же проблемы: обновление библиотеки служб Google Play и отсутствующий символ @ integer / google_play_services_version

но я все еще получаю ту же ошибку. Любая помощь, пожалуйста?


Если Eclipse вызывает у вас проблемы, попробуйте сделать это: stackoverflow.com/a/19990244/166921
Камил Сзот

Ответы:


100

Вероятно, ваша библиотека не связана с проектом должным образом или у вас более старая версия библиотеки google-play-services, поэтому возникает конфликт, и Eclipse становится глупым ..: S

Нет, вам не нужно ничего добавлять в integer.xml. Когда вы правильно свяжете библиотеку Google-play-services с вашим проектом, ссылка android:value="@integer/google_play_services_version"будет найдена, и вы будете готовы к работе. Когда вы добавляете библиотеку в свой проект, просто сделайте еще одну чистую, так что забавные вещи в среде Eclipse вычистите должным образом.

Если вы жестко запрограммируете этот номер, когда выйдет следующая версия игры, вам нужно будет обновить его. И если вы забудете об этом, вы снова потратите время на поиски ошибки ..: S

Надеюсь, это помогло. ;)


1
да, в студии Android я добавил службу Google Play как модуль (не как библиотеку), но я забыл добавить этот модуль в свой модуль проекта, где находится файл манифеста. Это решило проблему :)
Ragaisis

18
Спасибо, это устранило мою проблему. Пошаговое руководство для создания ссылок на проект библиотеки в Eclipse / ADT, защищенное от идиотов, можно найти в документации по инструментам Google . Я, по-видимому, идиот, потому что пытался добавить библиотеку в «Путь сборки Java: Библиотеки» - без труда.
Джеффро

Извините за поздний ответ, но да, это была проблема, библиотека не была правильно связана с моим проектом!
Adz

1
Как это сделать для Муравья?
Дмитрий Лазерка

2
Если это поможет, мне пришлось сделать еще несколько шагов в Android Studio. Пошел в: Структура проекта -> Приложение -> Зависимости -> щелкните +, чтобы добавить параметр для библиотеки -> play-services (xxx). У меня возникла ошибка, когда я перестроил и добавила библиотеку play-services ... 0.0. Мне не хватало репозиториев Google Play в диспетчере SDK в разделе Extras. Когда я вернулся и повторил эти шаги, библиотека теперь имела фактический номер версии и была успешно перестроена.
natur3

36

Я нашел решение.

  • Шаг 1: щелкните правой кнопкой мыши свой проект в проводнике пакетов (левая сторона в eclipse)
  • Шаг 2: перейти к Android.
  • Шаг 3. В разделе «Библиотека» добавьте библиотеку ... (google-play-services_lib)
    см. Ниже кнопки

    • Скопируйте проект библиотеки в

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

    • в место, где вы поддерживаете свои проекты приложений Android. Если вы используете Eclipse, импортируйте проект библиотеки в свою рабочую область. Щелкните Файл> Импорт, выберите Android> Существующий код Android в рабочей области и перейдите к копии проекта библиотеки, чтобы импортировать ее.
    • Щелкните здесь, чтобы узнать больше.
  • Шаг 4: Нажмите Применить
  • Шаг 5: Нажмите ОК
  • Шаг 6. Обновите приложение из проводника пакетов.
  • Шаг 7: вы увидите, что ошибка исчезла.

30

От сюда

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

Я столкнулся с этой ошибкой, потому что ссылался на исходную копию из каталога SDK. Убедитесь, что вы сначала скопировали библиотеку в рабочую область Android и ссылаетесь только на нее. В eclipse вы можете сделать это, установив флажок «Копировать проекты в рабочую область» при импорте проекта.


3
aiaiai, потраченные впустую часы из-за того, что не поставили галочку ... рад, что нашел этот ответ! Должно быть яснее в документации Google.
Marius Hilarious

И это была моя проблема, все было указано так, как должно, за исключением того, что исходная папка google lib не была скопирована в мою рабочую область
JustADev

Это исправление тоже помогло мне. Но интересно, в чем разница технически?
sivag1 05

Google должен обновить скриншот / инструкции здесь: developers.google.com/+/mobile/android/getting-started
ban-geoengineering

22

В Android Studio вы можете исправить это, просто добавив это в свой файл Gradle:

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

РЕДАКТИРОВАТЬ

Теперь, благодаря обновлениям и новому API Gradle, вам следует использовать следующую строку:

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

Еще один важный совет : избегайте использования связанной версии сервисов Google Play, но рассмотрите возможность объявления только тех зависимостей, которые необходимы вашему приложению, чтобы уменьшить его размер, а также уменьшить количество ненужных обращений до ограничения в 65 тыс. Что-то вроде (например, для Карт), это было бы лучше, чем обычное использование игровых сервисов выше:

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

Спасибо, это помогло. Я пытаюсь выполнить это руководство и столкнулся с этой ошибкой, и ваше решение мне помогло: github.com/googledrive/android-demos
Саймон,

1
Мне просто нужно было очистить проект после синхронизации gradle, и отсутствующая целочисленная ошибка исчезла. Это тоже хорошо работает:compile 'com.google.android.gms:play-services-appindexing:7.8.0'
Someone Somewhere

2
Я знаю, что это старый вопрос / ответ, но люди все еще натыкаются на него, поэтому имело смысл обновить его до новых API-интерфейсов AS3 и Gradle и подчеркнуть необходимость использовать конкретную библиотеку вместо всего пакета. Надеюсь, автор оригинала не возражает
Ewoks

7

Просто добавьте ссылку на библиотеку, перейдите в Propertes -> Android, затем добавьте библиотеку.

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

затем добавьте в себя 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. Это было просто, как говорили другие ответы, однако я не смог найти, где добавить зависимости. Наконец, я нашел его в File-> Project structure-> Dependencies. Это меню даст вам возможность добавить зависимость в библиотеку Google Play Services.


+1 за помощь по непонятной навигации в AS 1.2. Спасибо! В моем случае не помогло то, что я работал над проектом, переданным другим разработчиком, и на самом деле никогда не устанавливал нужную версию библиотеки игровых сервисов с помощью диспетчера SDK: $. После того, как я загрузил / установил библиотеку, я вернулся и снова удалил / добавил, и ошибка компиляции исчезла.
Anne Gunn


2

В моем случае мне пришлось установить репозиторий Google из менеджера SDK.


1

Я получал ту же ошибку; Я ранее устанавливал google-play-services_lib для Google Maps (и он работал нормально), но затем, когда я позже попытался добавить запись метаданных в свой манифест, я получил сообщение об ошибке. Я попробовал все вышеперечисленные предложения, но ничто не связывало их должным образом; В конце концов я удалил ссылку из своего проекта (project-properties-Android, remove google-play-services_lib library), затем удалил из рабочей области Eclipse, удалил файлы на диске и, наконец, использовал диспетчер SDK для переустановки с нуля.

Казалось, это наконец помогло; теперь Eclipse разрешил мне оставить запись метаданных без ошибок.


У меня была такая же ошибка, копия библиотеки google-play-services в моей рабочей области была старой (поэтому не содержала целочисленный ресурс), и замена библиотеки обновленной версией помогла.
Бьянка Даничук

0

Вы можете изменить рабочее пространство, а затем исправить эту проблему, а затем импортировать фиксированный проект обратно в основное рабочее пространство. Также должны быть 4 шага, чтобы надеяться, что это поможет кому-то в будущем.


0

Эта ошибка также может возникнуть, если вы загрузили новую версию Сервисов Google Play и не установили последний SDK. Вот что случилось со мной. Итак, как упоминали другие, если вы попытаетесь импортировать Сервисы Google Play, а затем открыть консоль, вы увидите ошибку компиляции. Попробуйте установить все последние версии Android SDK и попробуйте еще раз, если это так.


0

Я сделал следующие шаги, чтобы исправить это:

1) Импортируйте сервисы Google Play как проект в SDK для Android. В моей системе он находится в C: \ adt-bundle-windows-x86_64-20140702 \ sdk \ extras \ google \ google_play_services \ libproject \ google-play-services_lib

2) Ваше приложение для Android -> Свойства -> Android

В окне

2.1) Нажмите Google API в цели сборки проекта. 2.2) Добавьте сервисы Google Play в нижний фрейм и нажмите OK.

Надеюсь, он даст четкую инструкцию, что делать !!

Спасибо.


0

В моем случае мне нужно было скопировать ПАПКУ google-play-services_lib в тот же ДИСК исходных кодов моих приложений.

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

0

Простое удаление библиотеки сервисов Google Play из проекта и повторное добавление из sdk->extras->googleпапки отлично решило мою проблему.


0

В моем случае я просто перезапускаю Eclipse, и он работает.

Работаю уже 2 недели, не выключая, думаю, что все идет наперекосяк.

Спасибо за предложение хоть эвокам!


0

Замените код версии на соответствующий код версии библиотеки, чтобы решить вашу проблему, например:

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


-37

Вам нужно будет добавить файл "inteers.xml" в папку "res / values" вашего проекта. Содержимое файла должно быть ..

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

6
никогда не делайте этого, это не динамически.
panchicore 01

2
Это совершенно неправильный поступок. См. Ответ
Эвокса
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.