321

我有一个使用 Google Maps Android v2 API 的应用程序。我已将google-play-services_lib库项目添加到我的工作区,并按照这些页面上的说明从我的应用程序项目中添加了对它的引用:

一切似乎都运行良好:该应用程序使用默认标记显示地图和叠加层。所以我很确定我已经正确设置了 Google Play 服务和 Google Maps API 的东西。

但是,每当初始化地图视图(在第 2 代 Nexus 7 上)时,我都会在 ADT LogCat 窗口中看到此消息:

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,当我搜索项目(包括 gen/R.java 文件)时,我在任何地方都找不到常量 0x7f0b038a。

我检查了生成的 .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.ik',从方法 maps.z.ag.a 引用”

再一次,该应用程序似乎运行良好。也许忽略这些“错误”是安全的?

4

22 回答 22

88

Google 移动广告 SDK 常见问题解答指出:

我不断收到错误消息“找不到 Google Play 服务资源。检查您的项目配置以确保包含资源。

您可以放心地忽略此消息。您的应用仍会获取和投放横幅广告。

因此,如果您正确包含了 google-play-services_lib,并且您收到了广告,那么您无需担心(我猜......)

于 2014-04-13T16:02:13.600 回答
50

这是 Google Play 服务库中的一个错误,在问题 755下归档。

不幸的是,目前还没有任何解决方案。

于 2014-04-12T11:44:21.440 回答
36

我今天早上刚遇到这个问题,看起来很奇怪,因为我的应用程序直到今天都运行良好。我收到了完全相同的“未找到 Google Play 服务资源...”消息。

我尝试打开常规的 Google 地图应用程序以查看是否可以获取我的位置,但找不到。即使在等待 5 分钟后,这也足以正常通过手机信号塔从服务提供商那里获得位置。所以我检查了位置服务。

无论如何,问题出在我的 S3 上Location Services -> Google Location Services下。它没有被检查。检查了其他两个位置选项(VZW 位置服务独立 GPS 服务),但最后一个,谷歌位置服务没有。打开它后,普通的谷歌地图可以找到我的位置,我的应用程序可以找到我的位置,问题就消失了。

由于以下原因弹出错误消息:

mMap.setMyLocationEnabled(true);

未启用 Google 位置服务时。

在进行更多测试后,如果当前位置为空(无法从所有来源确定),那么在尝试打开 setMyLocationEnabled 时会出现此错误。

于 2013-08-10T13:22:05.760 回答
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.classcom.google.android.gms.common

有一个import com.google.android.gms.R.string;,但没有使用string.something,所以我猜这是错误 - 应该有import com.google.android.gms.R;

尽管如此,该isGooglePlayServicesAvailable方法仍按预期工作(记录该警告除外),但该类中还有其他方法使用 unimported R.class,因此可能存在其他一些错误。虽然我的应用程序中的横幅工作正常......

于 2014-02-10T20:09:46.347 回答
20

您必须将其添加google-play-services-lib为库项目。他们更新了SDK。周围有几个教程。对于Eclipse,这很容易:

Right click project -> properties -> Android

在此处输入图像描述

有关更详细的演练:

导入库项目

如何让 GoogleMaps 在模拟器上运行

于 2013-08-08T09:54:36.367 回答
12

我也有这个问题。我解决它的方法如下:

  1. 删除 google-play-services_lib 库项目。
  2. 删除 [您的项目] > 属性 > Android 中的(现在无效的)google-play-services_lib 引用。
  3. android-sdk-x/extras/google_play_services/libproject. 导入项目时,您会看到“将项目复制到工作区”选项。取消选中它。
  4. 使用 [您的项目] > 属性 > Android 将(现在有效的)google-play-services_lib 引用添加到您的项目中。

这对我有用。我希望它也能帮助你!

于 2013-09-21T14:18:29.357 回答
4

我在使用 Admob 时遇到了这个问题,只是因为我忘记将我的广告单元 ID 写入@string.

于 2013-12-31T09:43:55.523 回答
3

我遇到过同样的问题。在 Google API 控制台中,您应该检查是否只为该应用生成了一个密钥。我有一段时间将我的代码从一台 PC 迁移到另一台 PC 等等(它变得很乱),并且我的一个项目有多个密钥。旧密钥在 API 控制台页面上都列为非活动密钥,但由于某种原因导致了冲突。完全删除它们后,我再次运行它并且它工作。

于 2013-09-08T04:55:02.127 回答
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 上,您总是会收到错误消息:

错误:未找到与给定名称匹配的资源(在“值”处,值为“@integer/google_play_services_version”)。

为了解决该错误,许多人建议使用原始值4030500代替@integer/google_play_services_version,但仅适用于 Google 服务修订版 13。

如果您使用任何旧版本或Froyo版本(如我),您应该在其中添加另一个值。要知道应该放什么值,只需打开 Google Play 服务清单并复制粘贴 version_code 值。对于 Froyo 服务,它是3265130。添加后,我不再收到此错误,并且我终于开始在我的应用程序中接收坐标。

于 2013-12-07T15:21:45.747 回答
3

对我来说,唯一可行的解​​决方案是添加 android-support-v7-appcompat 库。似乎还需要这个库才能摆脱该消息。从那时起,我的应用程序一直运行良好!

我希望它有帮助!

于 2014-02-06T14:55:36.433 回答
2

我在这里遇到了同样的问题。正如 Magnus 上面所说,对我来说,这是由于 SDK 更新到 22.0.5 版而发生的。

在我的 Android SDK (包括 Google Play 服务)和Eclipse中的 Android 插件中执行完整更新后,我能够在我的应用程序中使用播放服务库。

于 2013-08-10T22:10:07.890 回答
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 项目属性并添加新的 Module 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 中是必须的,为什么我们不能只导入库或项目。

于 2014-04-10T10:27:49.040 回答
1

我也有同样的问题。在开始时,它工作正常,但后来我从我的设备上完全卸载了我的应用程序(我在我的手机上运行它)并再次运行它,它向我显示了同样的错误。

我在工作时包含了所有库和资源,但我仍然收到此错误,因此我从项目构建中删除了所有引用和库,将谷歌服务播放更新到修订版 10,从设备中完全卸载应用程序,然后再次添加所有资源和库并运行它,它又开始工作了。

这里要注意的一件事是,在运行时我仍然在LogCat中看到此错误消息,但在我的设备上它现在工作正常。

于 2013-08-15T09:26:19.420 回答
1

我也有同样的问题。我也尝试寻找解决方案,但在没有找到任何解决方案后,我尝试重新启动我的手机(Android 设备),它解决了问题。

请试一试!重新启动您的移动设备和Eclipse以确保安全并检查它是否工作。

于 2014-03-03T15:18:53.533 回答
1

我有同样的问题,我创建了自己的 API 来检查是否安装了谷歌播放服务,它对我来说很好。只需传递谷歌播放服务的包裹信息,它会给你带来价值

下面是代码:

公共静态布尔 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; }

于 2015-06-29T11:06:27.120 回答
0

与多个开发人员合作时,我遇到了完全相同的问题。如果我从我的ADT运行项目,它运行良好,但从他们的它不是......

答案是把他们的SHA-1密钥和包名放在Google API 控制台和我的一样。我们是三个开发人员,所以我们需要输入三个 SHA-1 密钥。

我希望它能给你一些启发......

于 2013-12-29T14:00:59.610 回答
0

对我来说,删除以下代码修复了它!

mLocationClient.setMockMode(true);
于 2014-01-20T18:57:47.287 回答
0

在我的情况下,这意味着我的实现中存在某种错误,它说它找不到在LogCat中正确显示错误消息的资源。当我在我的实现中修复了这个错误时,来自 LogCat 的问题也消失了。所以实际上,除非你错过了一些真正必要的资源,否则你不应该集中精力修复丢失的资源,而是修复你的实现。

顺便说一句,错误是我在调试模式下运行广告而没有进入广告测试模式。

于 2014-03-05T09:19:25.347 回答
0

我认为这是当前 Google Play 服务库修订版 15 中的一个错误,因为根本原因似乎是由于未能读取资源文件引起的:

W/ResourceType(25122):请求资源 0x7f0c000d 失败,因为它很复杂
E/GooglePlayServicesUtil(25122):找不到 Google Play 服务资源。检查您的项目配置以确保包含资源。

似乎 Google Play 服务库尝试读取资源文件,并且有一个通用的包罗万象,当资源加载失败时会显示此错误消息。这与kreker 设法从库中反编译的内容相对应,并会解释日志消息。

于 2014-03-06T10:08:36.730 回答
0

LE:我只记得这是关于使用谷歌地图的,所以我的回答并没有真正回答最初的问题,但我希望有些人如果在玩游戏服务方面遇到同样的问题,可以节省几个小时/几天的时间.

我也有这个令人难以置信的神秘错误。对我来说,这与位置服务没有任何关系,但是没有正确阅读文档,更准确地说是第 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)。但是上面的那条小线解决了所有问题。

于 2014-04-02T18:51:16.500 回答
0

我有同样的问题。正如 Kristopher Johnson 所说,我引用了 google-play-services_lib,但它没有用。我在项目属性/java 构建路径/库/android 依赖项下添加了 google_play_services_lib.jar(查看您的 SDK/google 文件夹),并且错误消失了。

于 2014-04-04T07:18:09.787 回答
0

你知道,我不认为这是来自 sdk 的错误。“未找到 Google Play 服务资源。请检查您的项目配置以确保包含资源”完全正确。放入 /libs 的 jar 文件不包含任何资源,如 *xml、*png 等。错误日志意味着这一点。如果您曾经添加过支持库,如v4v7-appcompatv7-cardviewv7-recyclerviewv7 -pallete或v7-gridlayout,有时会出现暗示资源短缺的日志。这都是因为项目中的资源没有被导入。因此,尽快将支持项目导入为库。当然,你首先要通过SDK Manager下载这个支持项目附加项目

于 2014-11-20T07:26:06.747 回答