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

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

一切似乎都很正常:应用程序显示地图和覆盖默认标记。所以我很确定我已经正确地设置了谷歌播放服务和谷歌地图API。

然而,我在ADT LogCat窗口中看到这条消息每当地图视图初始化(在第二代Nexus 7上):

The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.

消息级别是Error,标记是GooglePlayServicesUtil。

这似乎是良性的,因为我的应用程序运行良好。但是我能做些什么来解决问题呢?


进一步的信息:每次“谷歌播放服务资源未找到”消息出现在LogCat中,它前面是这些消息,这是警告和标记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'

关于这个问题的更多细节可以在这里找到:谷歌地图在Android上工作正常,但我仍然得到一个错误“无法找到类的Maps . I。K ',引用自方法maps.z.ag.a"

这款应用似乎又一次运行良好。也许忽略这些“错误”是安全的?


当前回答

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

请试一试!为了安全起见,重新启动您的移动设备和Eclipse,并检查它是否正常工作。

其他回答

You know, I don't think it's a bug from sdk. "The Google Play services resources were not found. Check your project configuration to ensure that the resources are included" is exactly right. The jar file putted into your /libs doesn't contain any resources like *xml, *png etc. The error logs mean this. And If your ever added support libraries like v4, v7-appcompat, v7-cardview, v7-recyclerview, v7-pallete or v7-gridlayout, sometimes logs which imply that resources are in short occur. All these is because that resources in projects are not imported. So, import support projects as library ASAP. Of course, you first download this support projects through SDK Manager at the item of extras

我相信这是当前谷歌Play Services库的一个bug,修订版15,因为底层原因似乎是由于未能读取资源文件造成的:

W/ResourceType(25122):请求资源0x7f0c000d失败,因为它很复杂 E/GooglePlayServicesUtil(25122): The谷歌Play services resources were not found。检查您的项目配置,以确保资源包括在内。

谷歌Play Services库似乎试图读取资源文件,并在资源加载失败时显示此错误消息的通用catch-all。这与kreker设法从库反编译的内容相对应,并将解释日志消息。

在与其他开发者合作时,我也遇到了同样的问题。如果我从我的ADT运行项目,它工作得很好,但从他们的不是。

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

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

我也有同样的问题。在谷歌api控制台中,你应该检查该应用程序只有一个键生成。我有一个延伸,我将我的代码从一台PC迁移到下一台等(它变得混乱),并为我的一个项目有多个键。在API控制台页面上,旧的键都被列为非活动键,但由于某种原因导致了冲突。在完全删除它们之后,我再次运行它,它工作了。

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

下面是代码:

公共静态boolean isGooglePlayServicesInstalled() { 试一试 { ApplicationInfo info = NativeActivity.CURRENT.getPackageManager(). getapplicationinfo ("com.google.安卓。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; }