Ответ 1
Это ошибка в библиотеке сервисов Google Play, и она хранится здесь в проблема 755.
К сожалению, решения пока нет.
У меня есть приложение, которое использует API Google Maps Android v2. Я добавил проект библиотеки google-play-services_lib
в мое рабочее пространство и добавил ссылку на него из моего проекта приложения, следуя инструкциям на этих страницах:
Все работает нормально: приложение отображает карты и наложения с маркерами по умолчанию. Поэтому я уверен, что правильно настроены службы Google Play и API Карт Google.
Однако я вижу это сообщение в окне 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)
FWIW, я не могу найти постоянную 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"
И снова приложение работает нормально. Может быть, безопасно игнорировать эти "ошибки"?
Это ошибка в библиотеке сервисов Google Play, и она хранится здесь в проблема 755.
К сожалению, решения пока нет.
Часто задаваемые вопросы по SDK для мобильных объявлений Google:
Я продолжаю получать сообщение об ошибке. Ресурсы служб Google Play не были найденный. Проверьте конфигурацию проекта, чтобы убедиться, что ресурсы.
Вы можете смело игнорировать это сообщение. Ваше приложение по-прежнему будет получать и показывать баннерные объявления.
Итак, если вы правильно включили google-play-services_lib, и вы получаете рекламу, вам не о чем беспокоиться (я думаю...)
Я сегодня утром столкнулся с этой проблемой и выглядел очень странным, так как моя заявка работала до сегодняшнего дня. Я получал то же самое сообщение "Ресурсы служб Google Play не были найдены...".
Я попытался открыть обычное приложение Google Maps, чтобы узнать, могу ли я получить свое местоположение, но он его не найдет. Даже после ожидания 5 минут, что более чем достаточно времени, чтобы нормально получить местоположение от поставщика услуг через ячеистую башню. Поэтому я проверил службы геопозиционирования.
В любом случае проблема оказалась в том, что на моем S3 в разделе "Службы местоположения" → "Службы геолокации Google". Он не был проверен. Были проверены другие два параметра местоположения (службы местоположения VZW и автономные службы GPS), но последний, службы геолокации Google, не был. После этого, обычные Google Maps могут найти мое местоположение, и мое приложение может найти мое местоположение, и проблема исчезла.
Появится сообщение об ошибке из-за:
mMap.setMyLocationEnabled(true);
когда службы геолокации Google не включены.
После выполнения некоторого тестирования это выглядит так: если текущее местоположение равно null (не может быть определено из всех источников), вы получите эту ошибку при попытке включить setMyLocationEnabled.
Я декомпилировал библиотеку 14 версий сервисов Google Play. Я думаю, что есть ошибка в 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.");
}
....
В пакете com.google.android.gms.common
нет R.class
.
Существует import com.google.android.gms.R.string;
, но не используется string.something
, поэтому я предполагаю, что это ошибка - там должно быть import com.google.android.gms.R;
.
Тем не менее метод isGooglePlayServicesAvailable
работает по назначению (за исключением регистрации этого предупреждения), но в этом классе есть другие методы, которые используют unimported R.class
, поэтому могут быть и другие ошибки. Хотя баннеры в моем приложении прекрасно работают...
Вы должны добавить google-play-services-lib
в качестве библиотечного проекта. Они обновили SDK. Существует несколько учебных пособий. Для Eclipse это легко:
Right click project -> properties -> Android
Более подробные пошаговые руководства:
У меня тоже была эта проблема. Способ, которым я решил это, состоял в следующем:
android-sdk-x/extras/google_play_services/libproject
. При импорте проекта вы получаете опцию "Копировать проект в рабочее пространство". UNCHECK IT.Это помогло мне. Надеюсь, это тоже поможет!
Я столкнулся с этой проблемой, когда я использую Admob JUST, потому что забыл написать свой идентификатор рекламного блока в @string
.
У меня была такая же проблема. В Консоли API Google API вы должны убедиться, что для этого приложения создан только один ключ. У меня было место, где я переносил свой код с одного компьютера на другой и т.д. (Он запутался) и имел несколько ключей для моего одного проекта. Старшие ключи перечислены как неактивные на странице консоли API, но по какой-то причине вызвали конфликт. Удалив их полностью, я снова запустил его, и это сработало.
Что касается меня, я решил эту проблему следующим образом - как говорит 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
, но это ТОЛЬКО ТОЛЬКО для версии 13 служб Google.
Если вы используете более старую версию или версию для Froyo (как и я), вы должны добавить в нее другое значение. Чтобы узнать, какую ценность вы должны положить, просто откройте манифест службы Google Play и скопируйте-вставьте значение version_code. Для сервисов Froyo это 3265130. После этого я перестала получать эту ошибку, и я начал получать координаты в своем приложении.
Для меня единственным рабочим решением было добавить библиотеку android-support-v7-appcompat, а также. Кажется, что эта библиотека также необходима, чтобы избавиться от этого сообщения. С тех пор мои приложения работают нормально!
Надеюсь, это поможет!
У меня была такая же проблема. Как сказал Магнус выше, для меня это происходило из-за обновления SDK до версии 22.0.5.
После выполнения полного обновления в моем Android SDK (включая Google Play Services) и плагинах Android в Eclipse, я смог использовать play services lib в своем приложении.
После борьбы за пару дней единственный способ заставить его работать в IntelliJ IDEA 13 - это импортировать библиотеку. Вот все шаги:
android-sdk-root/extras/google/google_play_services/libproject
.google-play-services_lib
и вставьте его рядом с проектом IntelliJ IDEA (некоторые рекомендуют использовать этот каталог напрямую, но я рекомендую сохранить этот код в чистоте!).google-play-services_lib
.google-play-services_lib
в качестве зависимости от основного проекта.google-play-services
в библиотеку зависимостей.В приведенной ниже ссылке вы можете увидеть изображение того, как оно выглядит в моей IntelliJ IDEA 13. Это не сработает без добавления только одного из этих двух.
PS. Я задал вопрос, Почему IntelliJ IDEA 13 требует как самого проекта lib, так и самого lib (google-play-service) для добавления в качестве зависимости?, почему это необходимо в IntelliJ IDEA 13, и почему мы не можем импортировать только библиотеку или проект.
У меня также была та же проблема. В начале он работал нормально, но через некоторое время я полностью удалил свое приложение с моего устройства (я его запускал на своем мобильном устройстве) и снова запустил его, и он показал мне ту же ошибку.
У меня были все lib и ресурсы, включенные, поскольку он работал, но все же я получал эту ошибку, поэтому я удалил все ссылки и lib из моей сборки проекта, обновил игру сервиса google до версии 10, полностью удалил приложение с устройства, а затем снова добавил все ресурсы и библиотеки и запустил его, и он снова начал работать.
Одна вещь, которую нужно отметить во время работы, я все еще вижу это сообщение об ошибке в LogCat, но на моем устройстве он работает сейчас хорошо.
У меня тоже была такая же проблема. Я также пытался искать решения, но после того, как я не нашел ни одного из работающих решений, я попытался перезагрузить свой мобильный (Android-устройство) и решил проблему.
Пожалуйста, попробуйте! Перезагрузите мобильное устройство и Eclipse, чтобы быть в безопасности и проверить, работает ли он.
У меня была такая же проблема при работе с несколькими разработчиками. Если я запустил проект из своего ADT, он работает хорошо, но от их нет.
Ответ заключался в том, чтобы поместить их SHA-1 ключ с именем пакета в Консоль Google API, а также мои. Мы - три разработчика, поэтому нам нужно было установить три ключа SHA-1.
Надеюсь, это даст вам вдохновение...
Для меня удаление следующего кода исправлено!
mLocationClient.setMockMode(true);
В моем случае это означало, что в моей реализации есть какая-то ошибка, и она говорит, что не может найти ресурс для сообщения об ошибке, который будет правильно показан в LogCat. Когда я исправил эту ошибку в моей реализации, проблема с LogCat также исчезла. Так что, если вы не пропустили какой-то действительно необходимый ресурс, вам не следует концентрироваться, чтобы исправить недостающие ресурсы, а скорее исправить вашу реализацию.
Ошибка, BTW, заключалась в том, что я запускал рекламу в режиме отладки без перехода в режим тестирования рекламы.
Я считаю, что это ошибка в текущей библиотеке Служб Google Play, версия 15, поскольку основная причина, по-видимому, вызвана отсутствием чтения файла ресурсов:
W/ResourceType (25122): запрос ресурса 0x7f0c000d завершился неудачно, поскольку он является сложным
E/GooglePlayServicesUtil (25122): Ресурсы служб Google Play не найдены. Проверьте конфигурацию проекта, чтобы убедиться, что ресурсы включены.
Кажется, что библиотека Google Play Services пытается прочитать файл ресурсов и имеет общий общий признак, который отображает это сообщение об ошибке, когда ресурс не загружается. Это соответствует тому, что kreker удалось декомпилировать из библиотеки и объяснить сообщения журнала.
LE: Я просто вспомнил, что это касается использования Карт Google, поэтому мой ответ на самом деле не отвечает на начальный вопрос, но я надеюсь, что некоторые люди будут экономить часы/дни, разбивая головы на своих столах, если у них будет такая же проблема с Слушать Игровые Услуги.
У меня тоже была эта невероятно загадочная ошибка. Для меня это не было чем-то связанным с услугами определения местоположения, но с неправильным чтением документации, точнее шаг 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 здесь), Но эта маленькая строка выше всего исправлена.
У меня была та же проблема. Как сказал Кристофер Джонсон, я ссылался на google-play-services_lib, но это не сработало. Я добавил google_play_services_lib.jar(посмотрите на свою папку SDK/google) в свойствах проекта/пути сборки/библиотеки java/android и ошибки исчезли.
Знаешь, я не думаю, что это ошибка из sdk. "Ресурсы служб Google Play не найдены. Проверьте свою конфигурацию проекта, чтобы обеспечить включение ресурсов". Файл jar, помещенный в ваш /libs, не содержит никаких ресурсов, таких как * xml, * png и т.д. Журналы ошибок означают это. И если ваши добавленные библиотеки поддержки, такие как v4, v7-appcompat, v7-cardview, v7-recyclerview, v7-pallete или v7-gridlayout, иногда регистрируются журналы, которые подразумевают, что ресурсы коротки. Все это связано с тем, что эти ресурсы в проектах не импортируются. Таким образом, проекты поддержки импорта в качестве библиотеки как можно скорее. Конечно, сначала вы загружаете эти проекты поддержки через Менеджер SDK в элементе дополнений
У меня была такая же проблема, что я создал собственный API, чтобы проверить, установлен ли сервис google play или нет, он отлично работает для меня. Просто передайте информацию о пакете услуг google play, это даст вам значение
ниже приведен код:
public static boolean isGooglePlayServicesInstalled() { пытаться { ApplicationInfo info = NativeActivity.CURRENT.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;
}