Сообщение LogCat: ресурсы служб Google Play не найдены. Проверьте конфигурацию вашего проекта, чтобы убедиться, что ресурсы включены

317

У меня есть приложение, которое использует Google Maps Android v2 API. Я добавил google-play-services_libпроект библиотеки в свое рабочее пространство и добавил ссылку на него из своего проекта приложения, следуя инструкциям на этих страницах:

Кажется, все работает нормально: приложение отображает карты и наложения с маркерами по умолчанию. Так что я уверен, что у меня правильно настроены сервисы Google Play и Google Maps API.

Тем не менее, я вижу это сообщение в окне ADT LogCat всякий раз, когда представление карты инициализируется (на Nexus 7 второго поколения):

The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.

Уровень сообщения - Ошибка, а тег - GooglePlayServicesUtil.

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


Дополнительная информация: Каждый раз, когда в LogCat появляется сообщение «Ресурсы служб Google Play не найдены», ему предшествуют эти сообщения, которые являются предупреждениями и помечены ResourceType:

getEntry failing because entryIndex 906 is beyond type entryCount 3

Failure getting entry for 0x7f0b038a (t=10 e=906) in package 0 (error -2147483647)

Я нигде не могу найти константу 0x7f0b038a при поиске проектов, в том числе файлов gen / R.java.

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


Другое обновление: после добавления ActionBarSherlock и обновления targetSdkVersion в моем манифесте с 8 до 17, теперь я вижу еще одну ошибку в выводе LogCat:

Could not find class 'maps.af.k', referenced from method 'maps.ag.an.a'

Более подробную информацию об этой проблеме можно найти здесь: Google Maps отлично работает на Android, но я все еще получаю сообщение об ошибке «Не удалось найти класс« maps.i.k », на который ссылается метод maps.z.ag.a»

И еще раз, приложение, кажется, работает просто отлично. Может быть, безопасно игнорировать эти «ошибки»?

Кристофер Джонсон
источник
1
То же самое происходит и здесь, используя Gradle + Android Studio! 08-06 19: 47: 00.376 2141-2141 / com.menor.android.assignment.tempos21 E / GooglePlayServicesUtil: ресурсы служб Google Play не найдены. Проверьте конфигурацию вашего проекта, чтобы убедиться, что ресурсы включены.
cesards
1
Попробуйте очистить все проекты в вашей рабочей области (под Project > Clean). Я заметил, что это иногда исправляет проблемы R.java/resource.
Коннор Бринтон
3
То же самое происходит и здесь, чистота не помогла. Я думаю, что это началось после того, как я обновил материал в менеджере Android SDK
CeeRo
8
То же самое и здесь (и в Eclipse), скорее всего, из-за последнего обновления SDK (22.0.5). Сегодня сервисы Google Play были обновлены до rev10, но у меня все еще есть сообщение об ошибке. Что еще хуже; Мой фрагмент Google Maps перестал работать. Он не хочет отображать карты, только бесконечный синий холст.
Магнус Йоханссон
5
Гоггл говорит: «Вы можете спокойно проигнорировать это сообщение. Ваше приложение все равно будет загружать и показывать рекламные баннеры».
sagus_helgy

Ответы:

50

Это ошибка в библиотеке служб Google Play, и она хранится здесь под номером 755 .

К сожалению, пока нет никакого решения.

Хишам Мьюнер
источник
21
Это сообщение относится к 2014 году, я получаю эту ошибку прямо сейчас, является ли это сообщение актуальным?
Талха
@sachithkn достаточно странно, у меня были проблемы в моем коде, при проверке и отладке я это выяснил. Вместо того, чтобы показывать ошибку в моем коде, он падал на уровне API, возможно, я сделал какой-то плохой код, добавив где-то try-catch, который принудительно выполнял код, в конечном итоге приводя к сбою при вызове API (или в API). Так что я исправил свой код и ошибка исчезла. По крайней мере, так я думаю.
Талха
88

В разделе часто задаваемых вопросов по Google Mobile Ads SDK говорится, что:

Я получаю сообщение об ошибке «Ресурсы сервисов Google Play не найдены. Проверьте конфигурацию вашего проекта, чтобы убедиться, что ресурсы включены. '

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

Так что, если вы правильно включили google-play-services_lib и получаете рекламу, вам не о чем беспокоиться (наверное ...)

grebulon
источник
1
возможно, вы можете игнорировать, но я продолжаю вдаваться в код, который не существует, каждый раз, когда я выбираю отладку приложения.
Android-разработчик
Что делать, если я не использую рекламу? Будут ли Службы Google Play пытаться сделать то, что генерирует сообщение?
Кристофер Джонсон
Я вижу это также в другом приложении, где я просто регистрируюсь для push-уведомлений GCM, и все, кажется, работает нормально.
Гребулон
когда я запускаю приложение в эмуляторе Android, показываются вставленные объявления, но если я запускаю то же приложение на физическом устройстве Android, то оно показывает пустой экран
Bharti Ladumor
Это мой опыт и мнение Также
Нур Хоссейн
36

Сегодня утром я столкнулся с этой проблемой и выглядел очень странно, поскольку мое приложение работало до сегодняшнего дня. Я получаю точно такое же сообщение "Ресурсы служб Google Play не найдены ...".

Я попытался открыть обычное приложение Google Maps, чтобы узнать, смогу ли я узнать свое местоположение, но он не нашел его. Даже после ожидания 5 минут, что более чем достаточно для обычного определения местоположения даже у поставщика услуг через вышку сотовой связи. Поэтому я проверил Службы определения местоположения.

В любом случае, проблема оказалась в том, что на моем S3 в разделе Location Services -> Google Location Services . Это не было проверено. Два других варианта местоположения были проверены ( VZW Location Services и Standalone GPS Services ), но последний, Google Location Services, не был. После включения обычные Карты Google могли найти мое местоположение, а мое приложение могло найти мое местоположение, и проблема исчезла.

Сообщение об ошибке появляется из-за:

mMap.setMyLocationEnabled(true);

когда Google Location Services не включен.

После еще одного тестирования, похоже, что текущее местоположение равно нулю (не может быть определено из всех источников), тогда вы получите эту ошибку при попытке включить setMyLocationEnabled.

shroge
источник
Это корень проблемы из того, что я могу сказать. Если вы удалите вызов для setMyLocationEnabled (), вы больше не получите ошибку. Несмотря на то, что она указана как ошибка, она кажется безвредной, поскольку приложение продолжает работать нормально, а функция отображения моего местоположения в приложении также продолжает работать нормально. Не уверен, почему это появляется как ошибка.
Guardius
19
setMyLocationEnabled не имеет к этому никакого отношения, поскольку на всех моих устройствах службы местоположения включены в настройках. Я подозреваю, что последний google-play-services.jar не работает.
Игорь Ганапольский
У моей проблемы было почти такое же исправление, которое мне нужно было, чтобы переключить мое местоположение в Android 4.4, вы на самом деле видите приложение, запрашивающее местоположение, и мое приложение было одним из них. Я предполагаю, что это связано с setOnMyLocationChangeListener, а не с setMyLocationEnabled, который выдает эту ошибку. Должна быть какая-то проверка, прежде чем вы сможете запросить местоположение и проверить, включены ли службы определения местоположения. Должно помочь
Джейшил Дейв
32

Я декомпилировал библиотеку Google Play версии 14 редакции. Я думаю, что есть ошибка в com.google.android.gms.common.GooglePlayServicesUtil.class. Вышеупомянутая строка появляется только в одном месте:

public static int isGooglePlayServicesAvailable(Context context) {
    PackageManager localPackageManager = context.getPackageManager();
    try {
        Resources localResources = context.getResources();
        localResources.getString(R.string.common_google_play_services_unknown_issue);
    } catch (Throwable localThrowable1) {
        Log.e("GooglePlayServicesUtil", "The Google Play services resources were not found. "
                + "Check your project configuration to ensure that the resources are included.");
    }
....

Нет R.classв com.google.android.gms.commonупаковке.

Существует import com.google.android.gms.R.string;, но не используется string.something, поэтому я думаю, что это ошибка - должно быть import com.google.android.gms.R;.

Тем не менее, isGooglePlayServicesAvailableметод работает как задумано (за исключением регистрации этого предупреждения), но в этом классе есть другие методы, которые используют unimported R.class, поэтому могут быть некоторые другие ошибки. Хотя баннеры в моем приложении работают нормально ...

Крекер
источник
20

Вы должны добавить в google-play-services-libкачестве библиотеки-проекта. Они обновили SDK . Есть несколько уроков вокруг. Для Eclipse это легко:

Right click project -> properties -> Android

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

Для более подробных прохождений:

Импорт библиотеки-проекта

Как запустить GoogleMaps на эмуляторе

bofredo
источник
15
Как указано в вопросе, я добавил проект библиотеки google-play-services_lib, и все работает нормально.
Кристофер Джонсон
хорошо, вы прямо не сказали, что вы используете google-play-services-lib в качестве ПРОЕКТА, поэтому я попытался указать на это. я буду переосмысливать проблему.
Бофредо
4
Кстати, я посмотрел на сгенерированный .apk, и он содержит все ресурсы из проекта google-play-services_lib, поэтому я почти уверен, что проект библиотеки добавлен и на него ссылаются правильно.
Кристофер Джонсон
2
Знаете ли вы, как сделать эквивалентную операцию в Android Studio? Я не хочу импортировать его с Maven
Рафаэль Ройер-Ривард
12

У меня тоже была эта проблема. Я решил это следующим образом:

  1. Удалите библиотечный проект google-play-services_lib.
  2. Удалите (теперь недействительно) ссылку на google-play-services_lib в [ваш проект]> Свойства> Android.
  3. Импортирован проект библиотеки google-play-services_lib из android-sdk-x/extras/google_play_services/libproject. При импорте проекта вы получаете опцию «Копировать проект в рабочую область». ПРОВЕРЬТЕ ЭТО.
  4. Добавьте (теперь действует) ссылку на google-play-services_lib в ваш проект с помощью [ваш проект]> Свойства> Android.

Это помогло мне. Надеюсь, это вам тоже поможет!

mDroidd
источник
7
Просто к сведению, вы не должны импортировать сервисы Google Play напрямую из SDK. Вы должны оставить флажок «Копировать проект в рабочее пространство», если вы это делаете, или скопировать каталог в рабочее пространство, или, что еще лучше, в свою систему контроля версий. Сегодня столкнулся с этой проблемой, когда некоторые разработчики использовали более старую версию, а некоторые использовали последнюю версию, а код проекта терпел неудачу с последней, потому что в Манифесте не было новых необходимых метаданных карт Google.
Мэтт К
Знаете ли вы, как сделать эквивалентную операцию в Android Studio? Я не хочу импортировать его с Maven
Рафаэль Ройер-Ривард
4

Я включил эту проблему, когда использую Admob JUST, потому что я забыл записать свой идентификатор рекламного блока @string.

Саймон Пан
источник
Где ты сказал, что забыл это сделать? Я создаю свое объявление программно, и тоже передаю такой идентификатор программно.
Фран Марсоа
3

Я была такая же проблема. В консоли API Google вы должны убедиться, что для этого приложения создан только один ключ. У меня было много времени, когда я переносил свой код с одного ПК на другой и так далее (он стал грязным), и у меня было несколько ключей для одного моего проекта. Все старые ключи перечислены на странице консоли API как неактивные, но по какой-то причине вызвали конфликт. После полного удаления я запустил его снова и все заработало.

joeblow23
источник
3

Что касается меня, я решил эту проблему следующим образом - как говорит developer.android.com, после добавления google-play-services_lib вы должны добавить <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> свой манифест, но в новом SDK вы всегда получите ошибку:

Ошибка: не найден ресурс, который соответствует указанному имени (в 'value' со значением '@ integer / google_play_services_version').

Для того, чтобы решить эту ошибку многие люди советуют использовать необработанное значение, 4030500 , вместо того @integer/google_play_services_version, но это верно только для пересмотра Google услуг 13.

Если вы используете какую-либо более старую версию или версию для Froyo (как я), вы должны добавить в нее другое значение. Чтобы узнать, какое значение вы должны указать, просто откройте манифест служб Google Play и скопируйте и вставьте значение version_code. Для услуг Froyo это 3265130 . После добавления я перестал получать эту ошибку, и я начал получать координаты в моем приложении, наконец.

whizzzkey
источник
4030500 дал мне ошибку. Однако правильное значение было указано в logcat.
Maverick
@Maverick какая у вас версия google_play_services? Проверьте это в Android SDK Manager
Whizzzkey
3

Для меня единственным работающим решением было добавить библиотеку android-support-v7-appcompat . Кажется, что эта библиотека также необходима для того, чтобы избавиться от этого сообщения. С тех пор мои приложения работали нормально!

Я надеюсь, что это помогает!

Ник
источник
Это не сработало для меня, для чего SDK вы собрали свой проект?
JPM
2

У меня была такая же проблема здесь. Как сказал выше Магнус, для меня это произошло из-за обновления SDK до версии 22.0.5.

После полного обновления моего Android SDK (включая Google Play Services) и плагинов Android в Eclipse я смог использовать lib services lib в своем приложении.

Volceri
источник
2

Для пользователей IntelliJ IDEA

После нескольких дней борьбы единственный способ заставить его работать в IntelliJ IDEA 13 - это импортировать библиотеку. Вот все шаги:

  1. Обновите Android SDK, чтобы установить последнюю версию Play Service.
  2. Перейти в android-sdk-root/extras/google/google_play_services/libprojectкаталог.
  3. Скопируйте google-play-services_libи вставьте его рядом с вашим проектом IntelliJ IDEA (некоторые рекомендуют использовать этот каталог напрямую, но я советую держать этот код в чистоте!).
  4. Откройте свойства проекта IntelliJ IDEA и добавьте новый модуль google-play-services_lib.
  5. Проверьте, помечен ли он как библиотека.
  6. Добавить google-play-services_libбиблиотечный проект в качестве зависимости от основного проекта.
  7. Добавьте google-play-servicesбиблиотеку как библиотеку зависимостей.

По приведенной ниже ссылке вы можете увидеть изображение того, как оно выглядит в моей IntelliJ IDEA 13. Это не сработает без добавления только одного из этих двух.

PS. Я задал вопрос: почему IntelliJ IDEA 13 требует, чтобы и проект lib, и сам lib (google-play-service) были добавлены в качестве зависимости? почему это необходимо в IntelliJ IDEA 13 и почему мы не можем импортировать только библиотеку или проект.

sandalone
источник
Не могли бы вы перечислить точные манипуляции, которые вы делаете для импорта проекта google-play-services_lib как зависимости модуля (я использую Android Studio 0.3.6)
Рафаэль Ройер-Ривард
@ RaphaelRoyer-Rivard Готово! Обратите внимание, что эти шаги предназначены для IDEA 13, а не для Android Studio, поэтому некоторые шаги могут отличаться, но они должны быть одинаковыми.
сандал
На самом деле, именно операция 4 и 5 вызывает у меня проблемы. Я открываю структуру проекта с помощью F4, затем я иду в Модули, нажимаю на + и появляется всплывающее окно с именем Новый модуль. Я ссылаюсь на папку google-play-services_lib отсюда (в корневом поле контента)?
Рафаэль Ройер-Ривард
@ RaphaelRoyer-Rivard Просто направьте в папку, а не в библиотеку JAR. И добавить весь проект в виде модуля. Это то, что вы спросили?
сандал
Ну, это не так просто, как выбрать папку в моем случае. Я должен выбрать тип модуля из этого списка ( Java, Maven, Gradle, JavaFX Application, Command Line App, Groovy, Griffon, Gradle: Android Module, Gradle: Android Project, Gradle: Java Library). А затем выберите папку в поле Content root. Правильный ли Javaтип модуля выбрать?
Рафаэль Ройер-Ривард
1

У меня тоже была такая же проблема. В начале все работало нормально, но через некоторое время я полностью удалил свое приложение со своего устройства (я запускал его на своем мобильном телефоне) и снова запустил, и оно показывает мне ту же ошибку.

У меня были все библиотеки и ресурсы, включенные во время его работы, но я все еще получал эту ошибку, поэтому я удалил все ссылки и библиотеки из моей сборки проекта, обновил игру Google Service до версии 10, полностью удалил приложение с устройства, а затем снова добавил все ресурсы и библиотеки, и он запустился, и он снова начал работать.

Стоит отметить, что во время работы я все еще вижу это сообщение об ошибке в LogCat , но на моем устройстве оно работает нормально.

Пратап Сингх
источник
1

У меня тоже была такая же проблема. Я также пытался искать решения, но после того, как я не нашел ни одного из работающих решений, я попытался перезагрузить свой мобильный телефон (устройство Android), и это решило проблему.

Пожалуйста, попробуйте! Перезагрузите мобильное устройство и Eclipse, чтобы быть в безопасности, и проверьте, работает ли оно.

Umang9
источник
0

Для меня удаление следующего кода исправило это!

mLocationClient.setMockMode(true);
Сейфане Идучах
источник
0

Л.Э .: Я только что вспомнил, что речь шла об использовании Google Maps, поэтому мой ответ на самом деле не отвечает на первоначальный вопрос, но я надеюсь, что некоторые люди сэкономят часы / дни, ударяя головой о свои парты, если у них возникнет та же проблема с Play Game Services ,

У меня тоже была эта невероятно загадочная ошибка. Это не было связано со службами определения местоположения для меня, но с неправильным чтением документации , точнее, с шага 3, где говорится добавить следующее к вашему AndroidManifest.xml:

<meta-data android:name="com.google.android.gms.games.APP_ID"
    android:value="@string/app_id" />

Очевидно, вы должны иметь следующее в AndroidManifest.xml

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

Я использовал те, которые BaseGameActivityони предлагают использовать, когда вы хотите реализовать игровые сервисы, поэтому я был немного удивлен, что это не сработало сразу. Я создал специальный модуль для копии google-play-services_lib, у меня была последняя версия ( 4323000на момент написания), и я установил его как зависимость модуля от моего основного модуля (здесь используется Android Studio). Но эта маленькая строчка сверху все исправила.

асинхронной
источник
0

У меня такая же проблема. Как сказал Кристофер Джонсон, я ссылался на google-play-services_lib, но это не сработало. Я добавил google_play_services_lib.jar (посмотрите ваш SDK / папку google) в свойствах проекта / пути сборки java / библиотеки / зависимости android и ошибка исчезла.

aprados
источник
0

У меня была точно такая же проблема при работе с несколькими разработчиками. Если я запускаю проект из моей ADT, он работает хорошо, а у них - нет ..

Ответ заключался в том, чтобы поместить ключ SHA-1 с именем пакета в консоль Google API, а также в мою. Мы три разработчика, поэтому нам нужно было вставить три ключа SHA-1.

Надеюсь, это вдохновит вас ...

Ноам
источник
0

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

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

Лукас Ханачек
источник
0

Я полагаю, что это ошибка в текущей библиотеке служб Google Play, редакция 15, поскольку основная причина, по-видимому, вызвана невозможностью прочитать файл ресурса:

W / ResourceType (25122): не удалось запросить ресурс 0x7f0c000d, поскольку он сложный
E / GooglePlayServicesUtil (25122): ресурсы служб Google Play не найдены. Проверьте конфигурацию вашего проекта, чтобы убедиться, что ресурсы включены.

Кажется, что библиотека сервисов Google Play пытается прочитать файл ресурса и имеет универсальное универсальное средство, которое отображает это сообщение об ошибке, когда ресурс не загружается. Это соответствует тому, что kreker удалось декомпилировать из библиотеки и объяснить сообщения журнала.

Пол Ламмерцма
источник
0

Вы знаете, я не думаю, что это ошибка от SDK. «Ресурсы сервисов Google Play не найдены. Проверьте конфигурацию вашего проекта, чтобы убедиться, что ресурсы включены», совершенно верно. Файл jar, помещенный в ваш / libs, не содержит никаких ресурсов, таких как * xml, * png и т. Д. Журналы ошибок означают это. И если ваши когда-либо добавленные библиотеки поддержки, такие как v4 , v7-appcompat , v7-cardview , v7-recyclerview , v7-pallete или v7-gridlayout , иногда регистрируют журналы, которые подразумевают, что ресурсы сокращаются . Все это потому, что ресурсы в проектах не импортируются. Итак, импортируйте проекты поддержки как библиотеку как можно скорее. Конечно, вы сначала загружаете эту поддержку проектов через SDK Managerна предмет дополнений


источник
0

У меня была та же проблема, я создал собственный API, чтобы проверить, установлен сервис Google Play или нет, он отлично работает для меня. Просто передайте информацию о пакете сервиса Google Play, он даст вам ценность

ниже код:

public static boolean isGooglePlayServicesInstalled () { try { ApplicationInfo info = NativeActivity . ТЕКУЩИЙ . getPackageManager (). getApplicationInfo ( "com.google.android.gms" , 0 );

LOG.d(LOG_IDENTIFIER, "info : "+ info); return true; } catch(PackageManager.NameNotFoundException e) { e.printStackTrace(); LOG.e(LOG_IDENTIFIER, "NameNotFoundException : "+ e.getMessage()); } return false; }

Сайед
источник