Додавання версії служб 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
Kamil Szot

Відповіді:


100

Можливо, ваша бібліотека не пов’язана з проектом належним чином або у вас є старіша версія бібліотеки google-play-services, тому з’являється конфлікт і Eclipse стає дурним ..: S

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

Якщо ви встановите десь цей номер, коли з’явиться наступна версія відтворення, вам доведеться його оновити. І якщо ви забудете про це, ви знову витратите час на пошуки помилок ..: S

Сподіваюся, це допомогло. ;)


1
так, на андроїд-студії я додав службу google play як модуль (не як бібліотеку), але забув додати цей модуль до свого модуля проекту, де знаходиться файл маніфесту. Це вирішило проблему :)
Рагаїсіс

18
Дякую, це вирішило мою проблему. Покрокове керівництво щодо посилань на бібліотечний проект у Eclipse / ADT можна знайти в документації Google Tools . Я, мабуть, ідіот, бо намагався додати бібліотеку в розділі "Шлях побудови Java: Бібліотеки" - це не працювало.
Джеффро,

Вибачте за пізню відповідь, але так, це була проблема, бібліотека не була належним чином пов’язана з моїм проектом!
Adz

1
Як це зробити для Мурахи?
Дмитро Лазерка

2
Якщо це допомагає, мені довелося зробити ще кілька кроків в Android Studio. Перейшов до: Структура проекту -> Програма -> Залежності -> натисніть +, щоб додати опцію для Бібліотеки -> послуги відтворення (xxx). Під час відновлення я отримав повідомлення про помилку, а додана бібліотека була послугами play ... 0.0. Мені не вистачало сховищ Google Play у Менеджері SDK у розділі Додатки. Коли я повернувся і повторив ці кроки, тепер бібліотека отримала фактичний номер версії та успішно відновлена.
natur3

36

Я отримав рішення.

  • Крок 1: Клацніть правою кнопкою миші на своєму проекті у Package Explorer (ліва сторона в 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.
Маріус Веселий

І це було моєю проблемою, на все
посилалося

Це виправлення спрацювало і для мене. Але цікаво, яка технічна різниця?
sivag1

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'
Хтось десь

2
Я знаю, що це старі запитання / відповіді, але люди все ще натрапляють на них, тому мало сенс оновити його до нових API AS3 та Gradle та наголосити на бажанні використовувати конкретну бібліотеку замість цілого набору. Сподіваюсь, оригінальний автор не проти
Евокс,

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. Це було просто лиске, сказане в інших відповідях, однак, я не зміг знайти, куди додати залежності. Нарешті, я знайшов його у меню Файл-> Структура проекту-> Залежності. Це меню надасть вам можливість додати залежність до бібліотеки служб Google Play.


+1 для довідки щодо незрозумілої навігації в AS 1.2. Дякую! У моєму випадку це не допомогло, що я працював над проектом, переданим з іншого розробника, і ніколи фактично не встановлював потрібну версію бібліотеки служб відтворення за допомогою менеджера SDK: $. Завантаживши / встановивши бібліотеку, я повернувся назад і знову видалив / додав, і помилка компіляції зникла.
Енн Ганн,


2

У моєму випадку мені довелося встановити репозиторій google з менеджера SDK.


1

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

Здавалося, це нарешті зробило фокус; зараз Eclipse вирішив дозволити мені залишити введення метаданих без помилок.


У мене була та ж помилка, копія бібліотеки google-play-services у моїй робочій області була старою (тому не містила цілочисельного ресурсу), і заміна lib на оновлену версію зробила трюк.
Bianca Daniciuc

0

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


0

Ця помилка також може статися, коли ви завантажили нову версію Служб Google Play і не встановили останню версію SDK. Ось що зі мною сталося. Отже, як зазначали інші, якщо ви спробуєте імпортувати Служби Google Play, а потім відкриєте консоль, ви побачите помилку компіляції. Спробуйте встановити всі останні Android SDK і повторіть спробу, якщо це так.


0

Я зробив наступні кроки, щоб відновитись після цього:

1) Імпортуйте послуги Google Play як проект у свій Android SDK. У моїй системі це можна знайти за адресою C: \ adt-bundle-windows-x86_64-20140702 \ sdk \ extras \ google \ google_play_services \ libproject \ google-play-services_lib

2) Ваш додаток для Android-> властивості -> android

У вікні

2.1) Клацніть на API Google у цілі побудови проекту 2.2) Додайте сервіси Google-play у нижній рамці та натисніть кнопку ОК

Сподіваюся, це дає чіткі вказівки щодо того, що робити !!

Дякую.


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 тижні, не вимикаючи його, я думаю, це йде на заваді.

Дякую за пропозицію, хоча Ewoks!


0

Замініть код версії відповідним кодом версії бібліотеки, щоб вирішити вашу проблему, наприклад:

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


-37

Вам потрібно буде додати файл "integers.xml" до папки "res / values" вашого проекту. Вміст файлу повинен бути ..

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

6
ніколи не робіть цього, це не динамічно.
panchicore

2
Це точно неправильна річ. Див. Відповідь Ewoks на stackoverflow.com/a/20068489/1450294
Michael Scheper
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.