ChatGPT解决这个技术问题 Extra ChatGPT

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

我有一个使用 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.

消息级别为错误,标记为 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,但我仍然有错误消息。更糟糕的是;我的谷歌地图片段已停止工作它不想显示任何地图,只有无尽的蓝色画布。
Goggle 说“您可以放心地忽略此消息。您的应用仍将获取并投放横幅广告。”

e
elliptic1

Google Mobile Ads SDK FAQ 指出:

我不断收到错误消息“找不到 Google Play 服务资源。检查您的项目配置以确保包含资源。您可以放心地忽略此消息。您的应用仍会获取和投放横幅广告。

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


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

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

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


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

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

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

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

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

mMap.setMyLocationEnabled(true);

未启用 Google 位置服务时。

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


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

我已经反编译了 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,因此可能存在一些其他错误。虽然我的应用程序中的横幅工作正常......


P
Peter Mortensen

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

Right click project -> properties -> Android

https://i.stack.imgur.com/JDv0L.jpg

有关更详细的演练:

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 导入它
m
mDroidd

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

删除 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 服务。如果您这样做,您应该保留“将项目复制到工作区”框,或者将目录复制到您的工作区,或者更好地复制到您的版本控制系统中。今天遇到了这个问题,一些开发人员使用的是旧版本,一些开发人员使用的是最新版本,并且项目代码使用最新版本失败,因为清单中没有新要求的谷歌地图元数据。
你知道如何在 Android Studio 中进行等价操作吗?我不想用 maven 导入它
P
Peter Mortensen

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


你在哪里说你忘了这样做?我正在以编程方式创建我的 adview,并以编程方式传递这样的 id。
k
kopi32

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


P
Peter Mortensen

至于我,我已经通过下一种方式解决了这个问题 - 正如 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 管理器中检查它
P
Peter Mortensen

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

我希望它有帮助!


这对我不起作用,您为什么 sdk 编译了您的项目?
P
Peter Mortensen

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

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


C
Community

对于 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 中的外观图像。如果不添加这两个中的一个,它将无法工作。

PS。我问了一个问题,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 ProjectGradle: Java Library) .然后在字段 Content root 中选择一个文件夹。 Java 是选择正确的模块类型吗?
P
Peter Mortensen

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

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

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


P
Peter Mortensen

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

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


S
Syed

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

下面是代码:

        LOG.d(LOG_IDENTIFIER, "info  : "+ info);

        return true;
    }
    catch(PackageManager.NameNotFoundException e)
    {
      e.printStackTrace();

        LOG.e(LOG_IDENTIFIER, "NameNotFoundException  : "+ e.getMessage());
    }


    return  false;
}


S
Seïfane Idouchach

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

mLocationClient.setMockMode(true);

a
async

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

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


a
aprados

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


P
Peter Mortensen

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

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

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


P
Peter Mortensen

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

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


C
Community

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

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

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


佚名

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


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅