LogCat消息:找不到Google Play服务资源.检查项目配置以确保包含资源

Kri*_*son 316 android google-maps google-play-services

我有一个使用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.
Run Code Online (Sandbox Code Playgroud)

消息级别为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)
Run Code Online (Sandbox Code Playgroud)

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'
Run Code Online (Sandbox Code Playgroud)

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

再一次,该应用程序似乎工作得很好.也许忽略这些"错误"是安全的吗?

gre*_*lon 89

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

我一直收到错误'找不到Google Play服务资源.检查您的项目配置以确保包含资源.

您可以安全地忽略此消息.您的应用仍会获取并投放横幅广告.

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

  • 为什么Google不会从库中删除有问题的`Log.e()`??? (3认同)

His*_*eer 49

这是Google Play服务库中的一个错误,它在问题755中提交.

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

  • 这篇文章的历史可以追溯到2014年,我现在收到这个错误,这篇文章是否相关? (19认同)

小智 36

我今天早上遇到了这个问题,看起来很奇怪,因为我的应用程序工作正常,直到今天.我得到了完全相同的"未找到Google Play服务资源..."消息.

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

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

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

mMap.setMyLocationEnabled(true);
Run Code Online (Sandbox Code Playgroud)

何时未启用Google位置服务.

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

  • setMyLocationEnabled与此无关,因为在我的所有设备上,位置服务都在设置中启用.我怀疑最新的google-play-services.jar已经破了. (19认同)

kre*_*ker 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.");
    }
....
Run Code Online (Sandbox Code Playgroud)

有没有R.classcom.google.android.gms.common包中.

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

然而,该isGooglePlayServicesAvailable方法按预期工作(除了记录该警告),但该类中还有其他方法,它使用未输入R.class,因此可能存在一些其他错误.虽然我的应用程序中的横幅很好......


bof*_*edo 20

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

Right click project -> properties -> Android
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有关更详细的演练:

导入库项目

如何让GoogleMaps在模拟器上运行

  • 正如问题中所述,我添加了google-play-services_lib库项目,一切正常. (15认同)
  • FWIW,我查看了生成的.apk,它确实包含了google-play-services_lib项目中的所有资源,因此我非常确定库项目是否已正确添加和引用. (4认同)
  • 你知道如何在Android Studio中进行等效操作吗?我不想用maven导入它 (2认同)

mDr*_*idd 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引用添加到项目中.

这对我有用.我希望它也能帮到你!

  • 仅供参考,您不应直接从SDK导入Google Play服务.您应该保留"将项目复制到工作区"复选框CHECKED,或者将目录复制到工作区,或者更好地复制到版本控制系统中.今天进入这个问题,其中一些开发人员正在使用旧版本,有些开发人员正在使用最新版本,项目代码失败了最新版本,因为它没有在Manifest中新需要的谷歌地图元数据. (7认同)