我有一个使用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.
消息级别为“错误”,标记为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,我在搜索项目时找不到常量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'
有关该问题的更多详细信息,请访问: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"
再次,该应用程序似乎工作得很好。也许忽略这些“错误”是安全的吗?
答案 0 :(得分:88)
我一直收到错误'Google Play服务资源没有 找到。检查您的项目配置以确保资源 包括在内。'
您可以安全地忽略此消息。您的应用仍然会抓取并投放横幅广告。
因此,如果你正确地包含了google-play-services_lib,并且你正在获得广告,那么你就没什么可担心的了(我猜......)
答案 1 :(得分:48)
这是Google Play服务库中的一个错误,它在issue 755下提交。
不幸的是,目前还没有任何解决方案。
答案 2 :(得分:36)
我今天早上遇到了这个问题,看起来很奇怪,因为我的应用程序工作正常,直到今天。我得到了完全相同的“未找到Google Play服务资源...”消息。
我尝试打开常规Google地图应用程序以查看我是否可以获取我的位置,但它找不到它。即使在等待5分钟之后,这也是通常从服务提供商通过手机信号塔获得位置的足够时间。所以我检查了位置服务。
无论如何,问题原来是在位置服务下的我的S3上 - > Google位置服务。它没有被检查。检查了其他两个位置选项( VZW位置服务和独立GPS服务),但最后一个,Google位置服务不是。打开后,常规Google地图可以找到我的位置,我的应用程序可以找到我的位置,问题就消失了。
由于以下原因弹出错误消息:
mMap.setMyLocationEnabled(true);
未启用Google位置服务时。
在做了一些测试后,看起来当前位置是否为空(无法从所有来源确定),那么在尝试打开setMyLocationEnabled时会出现此错误。
答案 3 :(得分: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.");
}
....
R.class
包中没有com.google.android.gms.common
。
有一个import com.google.android.gms.R.string;
,但没有使用string.something
,所以我猜这是错误 - 应该有import com.google.android.gms.R;
。
然而isGooglePlayServicesAvailable
方法按预期工作(除了记录该警告),但该类中还有其他方法,它使用无导入R.class
,因此可能存在其他一些错误。虽然我的应用中的横幅效果很好......
答案 4 :(得分:20)
您必须将google-play-services-lib
添加为库项目。他们更新了SDK。有几个教程。对Eclipse来说很简单:
Right click project -> properties -> Android
有关更详细的演练:
答案 5 :(得分:12)
我也有这个问题。我解决它的方式如下:
android-sdk-x/extras/google_play_services/libproject
导入了google-play-services_lib库项目。导入项目时,会出现“将项目复制到工作区”选项。 UNCHECK IT。这对我有用。我希望它对你有帮助!
答案 6 :(得分:4)
当我使用Admob时,我遇到了这个问题,因为我忘记将我的广告单元ID写入@string
。
答案 7 :(得分:3)
至于我,我已经通过下一个方式解决了这个问题 - 正如developer.android.com所说,在添加google-play-services_lib之后,您应该在清单中添加<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
,但是在新的SDK上总是会出错:
错误:找不到与给定名称匹配的资源(在'value'处,值为'@ integer / GOOGLE_PLAY_SERVICES_VERSION')。
要解决该错误,许多人建议使用原始值 4030500 ,而不是@integer/google_play_services_version
,但这仅适用于Google服务修订版13。
如果您使用Froyo的任何旧版本或版本(与我一样),您应该在其中添加其他值。要知道应该放什么价值,只需打开Google Play服务清单并复制粘贴version_code值即可。对于Froyo服务,它 3265130 。添加完之后我就停止了这个错误,最后我开始在应用程序中接收坐标。
答案 8 :(得分:3)
我有同样的问题。在Google API控制台中,您应该检查是否只为该应用生成了一个密钥。我有一段时间将我的代码从一台PC迁移到另一台PC等等(它变得凌乱),并为我的一个项目提供了多个密钥。旧的密钥在API控制台页面上都列为非活动状态,但由于某种原因导致冲突。完全删除后,我再次运行它并且有效。
答案 9 :(得分:3)
对我来说,唯一可行的解决方案是添加android-support-v7-appcompat库。看来这个库也是需要的,以便摆脱那条消息。从那以后我的申请一直很好!
我希望它有所帮助!
答案 10 :(得分:2)
我在这里遇到了同样的问题。正如Magnus上面所说,对我来说,由于SDK更新到22.0.5版本,它正在发生。
在我的Android SDK(包括Google Play服务)和Eclipse中的Android插件中执行完整更新后,我可以在我的应用程序中使用播放服务lib。
答案 11 :(得分:2)
经过几天的努力,使其在IntelliJ IDEA 13中运行的唯一方法是导入库。以下是所有步骤:
android-sdk-root/extras/google/google_play_services/libproject
目录。google-play-services_lib
并将其粘贴到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必须的,以及为什么我们不能只导入库或项目。
答案 12 :(得分:1)
我也有同样的问题。我也试图寻找解决方案,但在我找不到任何解决方案后,我尝试重启我的手机(Android设备),它解决了这个问题。
请试一试!重新启动您的移动设备,然后Eclipse保持安全并检查其是否有效。
答案 13 :(得分:1)
我也有同样的问题。在开始时,它工作正常,但不久之后我完全从我的设备上卸载了我的应用程序(我在我的手机上运行它)并再次运行它,它显示了同样的错误。
我已经包含了所有的lib和资源,因为它正在工作,但我仍然收到此错误,所以我从我的项目构建中删除了所有引用和lib,更新了google服务播放到修订版10,从设备中完全卸载了应用程序然后再次添加所有资源和库并运行它,它又开始工作了。
这里要注意的一件事是在运行时我仍然在我的LogCat中看到此错误消息,但在我的设备上它现在正常工作。
答案 14 :(得分:0)
我遇到了同样的问题,我创建了自己的API来检查是否安装了Google Play服务,它对我来说很好。只需传递谷歌播放服务的包裹信息,它将为您提供值
下面是代码:
public static boolean isGooglePlayServicesInstalled() { try { 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; }
答案 15 :(得分:0)
你知道,我不认为这是来自sdk的错误。 &#34;未找到Google Play服务资源。检查您的项目配置,以确保包含资源&#34;是完全正确的。放入/ libs的jar文件不包含任何资源,如* xml,* png等。错误日志意味着这一点。如果您曾经添加过支持库,例如 v4 , v7-appcompat , v7-cardview , v7-recyclerview , v7-pallete 或 v7-gridlayout ,有时会记录暗示资源短缺的日志。所有这些都是因为项目中的资源没有被导入。因此,尽快将支持项目导入为库。当然,您首先通过 SDK管理器在 extras
项下下载此支持项目答案 16 :(得分:0)
我遇到了同样的问题。正如Kristopher Johnson所说,我引用了google-play-services_lib,但它并没有起作用。 我在项目属性/ java构建路径/ libraries / android依赖项下添加了google_play_services_lib.jar(查看你的SDK / google文件夹),错误消失了。
答案 17 :(得分:0)
我也有这种令人难以置信的神秘错误。这与我的位置服务没有任何关系,但是没有正确阅读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 :(得分:0)
我认为这是当前Google Play服务库修订版15中的一个错误,因为潜在原因似乎是由于未能读取资源文件引起的:
W / ResourceType(25122):请求资源0x7f0c000d失败,因为它很复杂 E / GooglePlayServicesUtil(25122):找不到Google Play服务资源。检查项目配置以确保包含资源。
Google Play服务库似乎尝试读取资源文件,并且在资源无法加载时具有显示此错误消息的通用catch-all。这与库中的kreker managed to decompile相对应,并会解释日志消息。
答案 19 :(得分:0)
在我的情况下,这意味着,我的实现中存在某种错误,并且它表示无法找到错误消息的资源以在LogCat中正确显示。当我在实现中修复了这个错误时,LogCat的问题也消失了。所以实际上,除非你缺少一些非常必要的资源,否则你不应该集中精力修复缺少的资源,而是修复你的实现。
错误,BTW,是我在调试模式下运行广告而没有进入广告测试模式。
答案 20 :(得分:0)
我删除以下代码修复了它!
mLocationClient.setMockMode(true);
答案 21 :(得分:0)
与多个开发人员合作时,我遇到了完全相同的问题。如果我从我的ADT运行该项目它运作良好,但从他们的运作不是..
答案是将SHA-1密钥与软件包名称放在Google API console以及我的密码中。我们是三个开发人员,所以我们需要输入三个SHA-1密钥..
我希望它会给你一些启发......