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
库项目添加到我的工作区,并按照这些页面上的说明从我的应用程序项目中添加了对它的引用:
一切似乎都运行良好:该应用使用默认标记显示地图和叠加层。所以我很确定我已经正确设置了 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 库。并将整个项目添加为一个模块。这是你问的吗? 嗯,就我而言,这并不像选择一个文件夹那么简单。我必须从此列表中选择模块类型(Java
、Maven
、Gradle
、JavaFX Application
、Command Line App
、Groovy
、Griffon
、Gradle: Android Module
、Gradle: 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 等。错误日志意味着这一点。如果您曾经添加过支持库,例如 v4、v7-appcompat、v7-cardview、v7-recyclerview em>、v7-pallete 或 v7-gridlayout,有时会出现暗示资源短缺的日志。这都是因为项目中的资源没有被导入。因此,尽快将支持项目导入为库。当然,你首先要通过SDK Manager在extras
项下下载这个支持项目【讨论】:
以上是关于LogCat 消息:未找到 Google Play 服务资源。检查您的项目配置以确保包含资源的主要内容,如果未能解决你的问题,请参考以下文章
未找到 Android Google Play Service Vision 条码扫描器库
GoogleSignatureVerifier 签名无效消息(google play services 9.0.0)