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

Posted

技术标签:

【中文标题】LogCat 消息:未找到 Google Play 服务资源。检查您的项目配置以确保包含资源【英文标题】:LogCat message: The Google Play services resources were not found. Check your project configuration to ensure that the resources are included 【发布时间】:2013-08-06 18:40:06 【问题描述】:

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

http://developer.android.com/google/play-services/setup.html。 https://developers.google.com/maps/documentation/android/start

一切似乎都运行良好:该应用使用默认标记显示地图和叠加层。所以我很确定我已经正确设置了 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.

消息级别为Error,标签为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 works fine on Android but I still get an error "Could not find class 'maps.i.k', referenced from method maps.z.ag.a"

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

【问题讨论】:

这里发生了同样的事情,使用 Gradle + Android Studio! 08-06 19:47:00.376 2141-2141/com.menor.android.assignment.tempos21 E/GooglePlayServicesUtil:未找到 Google Play 服务资源。检查您的项目配置以确保包含资源。 尝试清理工作区中的所有项目(在Project > Clean 下)。我注意到这有时会修复 R.java/resource 问题。 同样的事情发生在这里,清洁没有帮助。我认为它是在我更新 android sdk 管理器中的内容后开始的 同样的事情(Eclipse 也是),很可能是因为最新的 SDK 更新 (22.0.5)。今天 Google Play 服务更新到 rev10,但我仍然有错误消息。更糟糕的是;我的 Google 地图片段已停止工作它不想显示任何地图,只想显示无尽的蓝色画布。 Goggle 说“您可以放心地忽略此消息。您的应用仍会获取并投放横幅广告。” 【参考方案1】:

Google Mobile Ads SDK FAQ 声明:

我不断收到错误消息“Google Play 服务资源不是 成立。检查您的项目配置以确保资源 包括在内。'

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

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

【讨论】:

也许你可以忽略,但每次我选择调试应用程序时,我都会遇到不存在的代码。 如果我不使用广告怎么办? Google Play 服务是否仍会尝试执行生成消息的任何操作? 我在另一个应用程序中也看到了这一点,我刚刚注册了 GCM 推送通知,一切似乎都运行良好。 当我在 android 模拟器中运行应用程序时,注入的广告正在显示,但如果我在物理 android 设备中运行相同的应用程序,那么它会显示空白屏幕 这也是我的经验和看法【参考方案2】:

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

很遗憾,目前还没有任何解决方案。

【讨论】:

这篇文章可以追溯到 2014 年,我现在收到这个错误,这篇文章是否相关? @sachithkn 很奇怪,我的代码有问题,在检查和调试时我发现了。它没有在我的代码中显示错误,而是在 API 级别崩溃,可能我通过在某处强制运行代码的 try-catch 执行了一些错误的代码,最终在 API 调用(或 API 中)崩溃。所以我修复了我的代码并且错误消失了。至少这是我认为发生的事情。【参考方案3】:

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

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

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

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

mMap.setMyLocationEnabled(true);

当 Google 位置服务未启用时。

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

【讨论】:

据我所知,这也是问题的根源。如果您删除对 setMyLocationEnabled() 的调用,您将不再收到错误消息。尽管它被列为错误,但它似乎是无害的,因为应用程序继续正常运行,并且在应用程序中显示我的位置的功能也继续正常工作。不知道为什么会出现错误。 setMyLocationEnabled 与此无关,因为在我的所有设备上,位置服务都已在设置中启用。我怀疑最新的 google-play-services.jar 坏了。 我的问题有一个几乎类似的修复,我需要在 Android 4.4 中打开我的位置,您实际上看到了请求位置的应用,而我的应用就是其中之一。我猜它与 setOnMyLocationChangeListener 而不是 setMyLocationEnabled 导致该错误有关。在您请求位置并检查位置服务是否开启之前,需要进行某种检查。应该有帮助【参考方案4】:

我已经反编译了 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.");
    
....

com.google.android.gms.common 包中没有 R.class

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

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

【讨论】:

【参考方案5】:

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

Right click project -> properties -> Android

更详细的演练:

Importing the library-project

How to get GoogleMaps running on emulator

【讨论】:

如问题所述,我已添加 google-play-services_lib 库项目,一切正常。 好的,您没有明确表示您使用 google-play-services-lib 作为项目,所以我试图指出这一点。我会重新考虑这个问题。 FWIW,我查看了生成的 .apk,它确实包含来自 google-play-services_lib 项目的所有资源,所以我很确定库项目已正确添加和引用. 你知道如何在Android Studio中进行等价操作吗?我不想用 maven 导入它【参考方案6】:

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

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

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

【讨论】:

仅供参考,您不应直接从 SDK 导入 google play 服务。如果您这样做,您应该保持“将项目复制到工作区”框处于选中状态,或者将目录复制到您的工作区,或者更好地复制到您的版本控制系统中。今天遇到了这个问题,一些开发人员使用的是旧版本,一些开发人员使用的是最新版本,并且项目代码使用最新版本失败,因为它在 Manifest 中没有新需要的谷歌地图元数据。 你知道如何在Android Studio中进行等价操作吗?我不想用 maven 导入它【参考方案7】:

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

【讨论】:

你在哪里说你忘了这样做?我正在以编程方式创建我的 adview,并以编程方式传递这样的 id。【参考方案8】:

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

【讨论】:

【参考方案9】:

至于我,我已经通过下一种方式解决了这个问题 - 正如 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。添加后,我不再收到此错误,并且我终于开始在我的应用程序中接收坐标。

【讨论】:

4030500 给了我一个错误。然而,在 logcat 中提供了正确使用的值。 @Maverick 你的 google_play_services 版本是多少?在 android sdk manager 中检查它【参考方案10】:

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

希望对你有帮助!

【讨论】:

这对我不起作用 你为什么 sdk 编译你的项目?【参考方案11】:

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

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

【讨论】:

【参考方案12】:

对于IntelliJ IDEA 用户

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

    更新 Android SDK 以安装最新的 Play Service。 转到android-sdk-root/extras/google/google_play_services/libproject 目录。 复制 google-play-services_lib 并将其粘贴到您的 IntelliJ IDEA 项目旁边(有些人建议直接使用此目录,但我建议保持此代码干净!)。 打开 IntelliJ IDEA 项目属性并添加新模块 google-play-services_lib。 检查它是否标记为库。 将google-play-services_lib库项目作为依赖添加到主项目。 也将google-play-services 库添加为依赖库。

在我在下面提供的链接上,您可以看到它在我的 IntelliJ IDEA 13 中的外观图像。如果不添加这两个中的一个,它将无法工作。

附言。我问了一个问题,Why does IntelliJ IDEA 13 require both lib project and lib itself (google-play-service) to be added as a dependency?,为什么它在 IntelliJ IDEA 13 中是必须的,为什么我们不能只导入库或项目。

【讨论】:

您能否列出将 google-play-services_lib 项目作为模块依赖项导入的确切操作(我使用 Android Studio 0.3.6) @RaphaelRoyer-Rivard 完成!请注意,这些步骤适用于 IDEA 13,而不适用于 Android Studio,因此某些步骤可能会有所不同,但应该相同。 其实是操作 4 和 5 给我带来了问题。我用 F4 打开项目结构,然后转到模块,单击 +,然后有一个名为 New Module 的弹出窗口。我是否从此处(在内容根字段中)引用 google-play-services_lib 文件夹? @RaphaelRoyer-Rivard 直接指向文件夹而不是 JAR 库。并将整个项目添加为一个模块。这是你问的吗? 嗯,就我而言,这并不像选择一个文件夹那么简单。我必须从此列表中选择模块类型(JavaMavenGradleJavaFX ApplicationCommand Line AppGroovyGriffonGradle: Android ModuleGradle: Android Project、@9876543) .然后在Content root 字段中选择一个文件夹。 Java 是选择正确的模块类型吗?【参考方案13】:

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

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

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

【讨论】:

【参考方案14】:

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

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

【讨论】:

【参考方案15】:

我有同样的问题,我创建了自己的 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;

【讨论】:

【参考方案16】:

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

mLocationClient.setMockMode(true);

【讨论】:

【参考方案17】:

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

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

【讨论】:

【参考方案18】:

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

【讨论】:

【参考方案19】:

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

答案是将他们的SHA-1 密钥与包名放在Google API console 和我的一样。我们是三个开发者,所以我们需要输入三个 SHA-1 密钥。

希望能给你一些启发……

【讨论】:

【参考方案20】:

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

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

【讨论】:

【参考方案21】:

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

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

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

【讨论】:

【参考方案22】:

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

项下下载这个支持项目

【讨论】:

以上是关于LogCat 消息:未找到 Google Play 服务资源。检查您的项目配置以确保包含资源的主要内容,如果未能解决你的问题,请参考以下文章

未找到 Android Google Play Service Vision 条码扫描器库

应用程序未正确配置为使用 google play 游戏服务

GoogleSignatureVerifier 签名无效消息(google play services 9.0.0)

Unity Google Play 游戏插件:错误未授权代码 13

Play 商店 - 未找到商品

Android Logcat 错误消息:“文件... driverlist.txt 未找到!”