LogCat消息:找不到Google Play服务资源。检查您的项目配置,以确保包括资源


317

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

一切似乎正常:该应用程序显示带有默认标记的地图和叠加层。因此,我很确定自己已经正确设置了Google Play服务和Google Maps API。

但是,无论何时初始化地图视图(在第二代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.z.ag.a引用的类'maps.i.k'”。

再次,该应用程序似乎可以正常运行。也许忽略这些“错误”是安全的吗?


1
使用Gradle + Android Studio,在这里发生的事情也一样!08-06 19:47:00.376 2141-2141 / com.menor.android.assignment.tempos21 E / GooglePlayServicesUtil:找不到Google Play服务资源。检查您的项目配置,以确保包括资源。

1
尝试清理工作区中的所有项目(在下方Project > Clean)。我注意到,这有时可以解决R.java/resource问题。
康纳·布林顿

3
同样的事情在这里发生,清洁并没有帮助。我认为它是在我更新了android sdk管理器中的内容后开始的
-CeeRo

8
这里也是一样(Eclipse也是如此),很可能是由于最新的SDK更新(22.0.5)。今天,Google Play服务已更新至rev10,但我仍然收到错误消息。更糟的是;我的Google Maps Fragment停止工作了。它不想显示任何地图,只能显示无尽的蓝色画布。
Magnus Johansson,

5
Goggle表示:“您可以放心地忽略此消息。您的应用仍将获取并投放横幅广告。”
sagus_helgy 2014年

Answers:


50

这是Google Play服务库中的一个错误,已在此处发布,版本为755

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


21
这篇文章可以追溯到2014年,我现在遇到这个错误,这贴子相关吗?
Talha

@sachithkn很奇怪,我的代码有问题,在检查和调试时发现了这一点。它没有在我的代码中显示错误,而是使它在API级别崩溃,而是通过在试图强制运行代码的位置添加try-catch,最终导致了在API调用(或在API)中崩溃,从而使我做了一些不好的代码。所以我修复了代码,错误消失了。至少这是我认为的事情。
Talha

88

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

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

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

因此,如果您正确包含了google-play-services_lib,并且正在获取广告,则无需担心(我想...)


1
也许您可以忽略,但是每次选择调试应用程序时,我都会陷入一个不存在的代码中。
Android开发人员

如果我不使用广告怎么办?Google Play服务是否仍将尽一切努力来生成消息?
克里斯托弗·约翰逊

我在另一个应用程序中也看到了这一点,在该应用程序中我只是注册了GCM推送通知,而且一切似乎都正常进行。
grebulon 2014年

当我在android模拟器中运行应用程序时,正在显示注入的广告,但是如果我在物理android设备中运行相同的应用程序,则该应用程序将显示黑屏
Bharti Ladumor

这也是我的经验和见解
Noor Hossain

36

我今天早上才遇到这个问题,因为直到今天我的应用程序都可以正常工作,所以看起来很奇怪。我收到完全相同的“找不到Google Play服务资源...”消息。

我尝试打开常规的Google Maps应用程序,以查看是否可以获取自己的位置,但找不到。即使等待了5分钟,这仍然是足够多的时间来正常通过服务塔从服务提供商那里获取位置。所以我检查了定位服务。

无论如何,问题出在我的S3上的位置服务 -> Google位置服务下。没有检查。选中了其他两个位置选项(VZW位置服务独立GPS服务),但最后一个未选中Google位置服务。启用该功能后,常规的Google Maps可以找到我的位置,而我的应用程序可以找到我的位置,问题就消失了。

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

mMap.setMyLocationEnabled(true);

未启用Google定位服务时。

经过更多测试后,如果当前位置为空(无法从所有来源确定),则尝试打开setMyLocationEnabled时会收到此错误。


这也是我可以说出的问题的根源。如果删除对setMyLocationEnabled()的调用,将不再收到错误。即使它被列为错误,它似乎也无害,因为该应用程序可以继续正常运行,并且在应用程序中显示我的位置的功能也可以正常运行。不知道为什么会出现错误。
Guardius

19
setMyLocationEnabled与此无关,因为在我所有的设备上都在设置中启用了定位服务。我怀疑最新的google-play-services.jar已损坏。
IgorGanapolsky 2013年

我的问题有一个几乎类似的修复程序,我需要在Android 4.4上切换我的位置,您实际上看到了正在请求位置的应用程序,而我的应用程序就是其中之一。我猜想这与setOnMyLocationChangeListener而不是setMyLocationEnabled有关,它给出了该错误。您需要先进行某种检查,然后才能请求位置并检查位置服务是否打开。应该有所帮助
Jayshil Dave

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,因此可能还会出现其他错误。虽然我的应用程序中的横幅效果很好...


20

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

Right click project -> properties -> Android

在此处输入图片说明

有关更详细的演练:

导入图书馆项目

如何在模拟器上运行GoogleMaps


15
如问题所述,我已经添加了google-play-services_lib库项目,并且一切正常。
克里斯托弗·约翰逊

好的,您没有明确表示您将google-play-services-lib用作PROJECT,所以我尝试指出这一点。我会重新考虑这个问题。
bofredo

4
FWIW,我查看了生成的.apk,它确实包含来自google-play-services_lib项目的所有资源,因此,我很确定库项目已添加并正确引用。
克里斯托弗·约翰逊

2
您知道如何在Android Studio中进行等效操作吗?我不希望将其与maven一起导入
Raphael Royer-Rivard 2014年

12

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

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

这对我有用。希望对您有帮助!


7
仅供参考,您不应该直接从SDK导入Google Play服务。如果需要,则应选中“将项目复制到工作区”框,或者将目录复制到工作区中,或者最好将其复制到版本控制系统中。今天遇到这个问题,其中一些开发人员正在使用旧版本,而一些开发人员正在使用最新版本,而项目代码因最新版本而失败,因为它在清单中没有新要求的google maps元数据。
Matt K

您知道如何在Android Studio中进行等效操作吗?我不希望将其与maven一起导入
Raphael Royer-Rivard 2014年

4

使用Admob JUST时遇到此问题,因为我忘记将广告单元ID写入@string


你在哪里说你忘了这么做?我正在以编程方式创建adview,并且也以编程方式传递了此类id。
Fran Marzoa '17

3

我遇到过同样的问题。在Google API控制台中,您应该检查该应用程序仅生成了一个密钥。我很费力地将代码从一台PC迁移到另一台PC,以此类推(杂乱无章),并且为一个项目有多个键。API控制台页面上所有较旧的键均被列为非活动键,但由于某些原因导致了冲突。完全删除它们之后,我再次运行了它并成功了。


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使用了任何较旧的版本(例如我),则应在其中输入另一个值。要知道您应该输入什么值,只需打开Goog​​le Play服务清单并复制粘贴version_code值即可。对于Froyo服务,它是3265130。添加完之后,我不再出现此错误,最后我开始在应用程序中接收坐标。


4030500给我一个错误。但是,logcat中提供了要使用的正确值。
Maverick 2014年

@Maverick您的google_play_services版本是什么?在Android SDK管理器中检查它
Whizzzkey 2014年

3

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

希望对您有所帮助!


这对我不起作用,您为项目编译了什么SDK?
JPM

2

我在这里有同样的问题。正如Magnus所说,对我而言,这是由于SDK更新到版本22.0.5所致。

在我的Android SDK(包括Google Play服务)和Eclipse中的 Android插件中执行完整更新后,我可以在应用程序中使用play services lib。


2

对于IntelliJ IDEA用户

经过几天的努力,使其在IntelliJ IDEA 13中工作的唯一方法是导入库。这是所有步骤:

  1. 更新Android SDK,以便安装最新的Play服务。
  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中是必须的,为什么我们不能仅导入库或项目。


您能否列出将google-play-services_lib项目作为模块依赖项导入的确切操作(我使用Android Studio 0.3.6)
Raphael Royer-Rivard 2014年

@ RaphaelRoyer-Rivard完成!请注意,这些步骤适用于IDEA 13,不适用于Android Studio,因此某些步骤可能会有所不同,但它们应该相同。
sandalone 2014年

实际上,是操作4和5导致了我的问题。我用F4打开项目结构,然后转到“模块”,单击+,然后有一个名为“新模块”的弹出窗口。我是否要从此处(在Content root字段中)引用google-play-services_lib文件夹?
Raphael Royer-Rivard 2014年

@ RaphaelRoyer-Rivard只需直接转到文件夹而不是JAR库。并将整个项目添加为模块。这是你问的吗?
sandalone 2014年

好吧,就我而言,选择一个文件夹并不简单。我必须从这个列表中的模块类型(JavaMavenGradleJavaFX ApplicationCommand Line AppGroovyGriffonGradle: Android ModuleGradle: Android ProjectGradle: Java Library)。然后在字段中选择一个文件夹Content root。是Java正确的模块类型可供选择吗?
Raphael Royer-Rivard 2014年

1

我也有同样的问题。开始时,它运行良好,但是一段时间后,我从设备上完全卸载了我的应用程序(我正在手机上运行它),然后再次运行它,它向我显示了相同的错误。

我已经包含所有库和资源,因为它正在运行,但是仍然出现此错误,因此我从项目构建中删除了所有引用和库,将google服务更新为修订版10,从设备上完全卸载了应用程序,然后再次添加了所有库和资源资源和库并运行它,它又开始工作了。

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


1

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

请试一试!为了安全起见,请重新启动您的移动设备和Eclipse,并检查其是否有效。



0

LE:我只是记得这是关于使用Google Maps的,所以我的回答并没有真正回答最初的问题,但是我希望某些人在Play游戏服务方面遇到同样的问题时,可以省下数小时的工作时间/天。 。

我也有这个难以置信的神秘错误。对我而言,这与定位服务无关,但没有正确阅读文档(更准确地说,是步骤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

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


0

与多个开发人员一起工作时,我遇到了完全相同的问题。如果我从ADT运行项目,则效果很好,但从他们的角度来看,效果不是。

答案是将其SHA-1密钥与程序包名称一起放在Google API控制台中中。我们是三个开发人员,因此我们需要放入三个SHA-1密钥。

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


0

在我的情况下,这意味着我的实现中存在某种错误,并且它表示无法找到错误消息的资源以在LogCat中正确显示。当我解决实施中的错误时,LogCat的问题也消失了。因此,实际上,除非您缺少一些真正必要的资源,否则您不应该专心解决丢失的资源,而应该解决实现问题。

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


0

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

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

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


0

您知道,我认为这不是SDK的错误。“找不到Google Play服务资源。请检查您的项目配置,以确保包括资源”是正确的。放入/ libs的jar文件不包含* xml,* png等任何资源。错误日志表示此情况。而如果你曾经添加支持库,例如V4V7-程序兼容性V7-cardviewV7-recyclerviewV7-调色板V7-网格布局,有时日志这意味着资源紧张进行。所有这些都是因为未导入项目中的资源。因此,请尽快将支持项目导入为库。当然,您首先要通过SDK Manager下载此支持项目在项目临时演员


0

我有一个同样的问题,我创建了自己的API来检查是否安装了Google Play服务,它对我来说很好。只要传递Google Play服务的配套信息,它就会为您带来价值

下面是代码:

public static boolean isGooglePlayServicesInstalled (){ 试试{ 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; }

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.