LogCat消息:找不到Google Play服务资源。 检查您的项目configuration,以确保包含资源
我有一个使用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。
不过,每当地图视图初始化时(在第二代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服务资源未find”消息时,会在这些消息前面添加警告并标记为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,当我search包括gen / R.java文件的项目时,我找不到常量0x7f0b038a。
我已经检查了生成的.apk的内容,它包含了google-play-services_lib/res
目录下的所有google-play-services_lib/res
。
另一个更新:添加ActionBarSherlock并更新我的清单中的targetSdkVersion从8到17,现在我看到LogCat输出中的另一个错误:
Could not find class 'maps.af.k', referenced from method 'maps.ag.an.a'
关于这个问题的更多细节可以在这里find: 谷歌地图工作正常的Android,但我仍然得到一个错误“找不到类”maps.ik“,从方法maps.z.ag.a”
再次,该应用程序似乎工作得很好。 也许可以忽略这些“错误”是安全的吗?
这是Google Play服务库中的一个错误,它在问题755中提交。
不幸的是,目前还没有任何解决scheme。
Google移动广告SDK常见问题指出:
我不断收到错误“找不到Google Play服务资源。 检查你的项目configuration,确保包含资源。
你可以放心地忽略这个消息。 您的应用仍会抓取并投放横幅广告。
所以,如果你正确地包含了google-play-services_lib,并且你正在收到广告,那你就没有什么好担心的了(我猜…)
今天早上我遇到了这个问题,看起来很奇怪,因为我的应用程序工作得很好,直到今天。 我得到了完全相同的“Google Play服务资源未find…”消息。
我试图打开常规的Google地图应用程序来查看是否可以获取我的位置,但是找不到它。 甚至在等待5分钟后,即使服务提供商通过蜂窝塔也能够正常获得足够的时间。 所以我检查了位置服务。
无论如何,问题原来是在我的S3下定位服务 – > 谷歌定位服务 。 没有被检查。 其他两个位置选项被检查( VZW定位服务和独立GPS服务 ),但最后一个,谷歌定位服务不是。 打开之后,常规Google地图可以find我的位置,我的应用程序可以find我的位置,问题就消失了。
popup的错误消息由于:
mMap.setMyLocationEnabled(true);
Google位置服务未启用时。
在做了一些更多的testing之后,看起来好像当前位置是空的(不能从所有的数据源确定),那么当你打开setMyLocationEnabled的时候你会得到这个错误。
我已经对Google Play服务修订版14库进行了反编译。 我认为com.google.android.gms.common.GooglePlayServicesUtil.class
存在一个错误。 上述string只出现在一个地方:
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
方法按预期工作(logging那个警告除外),但是该类中还有其他的方法,它使用了R.class
,所以可能还有一些其他的错误。 虽然在我的应用程序横幅工作正常…
您必须将google-play-services-lib
为库项目。 他们更新了SDK 。 有几个教程。 对于Eclipse来说很简单:
Right click project -> properties -> Android
有关更详细的演练:
导入库项目
如何让GoogleMaps在模拟器上运行
我也有这个问题。 我解决这个问题的方法如下:
- 删除google-play-services_lib库项目。
- 删除[你的项目]>属性> Android中的(现在无效的)google-play-services_lib参考。
- 从
android-sdk-x/extras/google_play_services/libproject
导入google-play-services_lib库项目。 在导入项目时,可以select“将项目复制到工作区”。 检查它。 - 添加(现在有效的)google-play-services_lib引用到您的项目与[您的项目]>属性>安卓。
这为我做了诡计。 我希望它也能帮助你!
当我使用Admob JUST时,我遇到了这个问题,因为我忘了将我的广告单元ID写入@string
。
我遇到过同样的问题。 在Google API控制台中,您应该检查是否只有一个为该应用生成的密钥。 我有一段时间把我的代码从一台电脑迁移到另一台电脑(这太乱了),而且我的一个项目有多个键。 旧的键在API控制台页面上被列为非活动,但由于某种原因导致冲突。 完全删除后,我再次运行它,它的工作。
至于我,我已经解决了这个问题的方式 – 作为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')。
为了解决这个错误,许多人build议使用原始值4030500而不是@integer/google_play_services_version
,但是对于Google服务修订版本13来说是正确的。
如果您使用任何旧版本或版本的Froyo (像我),你应该把另一个值。 要知道您应该放置什么样的价值,只需打开Google Play服务清单并复制粘贴version_code值即可。 对于Froyo服务,这是3265130 。 添加后,我已经停止了这个错误,我终于开始在我的应用程序接收坐标。
对我来说,唯一的工作解决scheme是添加android-support-v7-appcompat库 。 似乎这个库也是为了摆脱这个信息而需要的。 从那时起我的应用程序一直在正常工作!
我希望它有帮助!
我在这里有同样的问题。 正如Magnus上面所说的,对我来说,这是由于SDK更新到版本22.0.5而发生的。
在我的Android SDK (包括Google Play服务)和Android插件在Eclipse中执行完整更新之后,我可以在我的应用程序中使用播放服务库。
对于IntelliJ IDEA用户
经过几天的努力,使其在IntelliJ IDEA 13中工作的唯一方法是导入库。 以下是所有步骤:
- 更新Android SDK,以便安装最新的Play服务。
- 转到
android-sdk-root/extras/google/google_play_services/libproject
目录。 - 复制
google-play-services_lib
并将其粘贴到IntelliJ IDEA项目旁边(有些人build议直接使用这个目录,但我build议保持这个代码干净!)。 - 打开IntelliJ IDEA项目属性并添加新的模块
google-play-services_lib
。 - 检查它是否被标记为库。
- 将
google-play-services_lib
库项目添加为主项目的依赖项。 - 添加
google-play-services
库以及依赖库。
在下面提供的链接上,您可以看到我的IntelliJ IDEA 13中的图像。如果不添加这两个中的一个,它将不起作用。
PS。 我问了一个问题, 为什么IntelliJ IDEA 13需要将lib项目和lib本身(google-play-service)作为依赖项添加? 为什么在IntelliJ IDEA 13中是必须的,为什么我们不能只导入库或项目。
我也有同样的问题。 在开始时,它工作的很好,但是之后我从我的设备上完全卸载了我的应用程序(我在移动设备上运行它),然后再次运行它,并显示出同样的错误。
我有所有lib和资源,因为它正在工作,但仍然我得到这个错误,所以我从我的项目构build中删除所有引用和lib,更新谷歌服务播放到版本10,完全从设备卸载应用程序,然后再次添加资源和库并运行它,它开始工作了。
在这里需要注意的一点是在运行时我仍然在LogCat中看到这个错误信息,但是在我的设备上它现在工作正常。
对于我删除以下代码修复它!
mLocationClient.setMockMode(true);
LE:我只记得这是关于使用谷歌地图的,所以我的回答并没有真正回答最初的问题,但是我希望有些人如果在Play游戏服务中遇到同样的问题,可以节省数小时甚至数天的时间。
我也有这个难以置信的神秘错误。 这与我的位置服务没有任何关系,但是没有正确地阅读文档 ,更确切地说是第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"/>
我在使用他们build议用来实现游戏服务的BaseGameActivity
,所以我有点惊讶,它不能马上工作。 我确实为google-play-services_lib
创build了一个专用模块,我有它的最新版本( 4323000
为4323000
),而且我将它设置为模块依赖项(我的主模块在这里使用Android Studio) 。 但是,上面的那一小行固定了一切。
我有同样的问题。 正如Kristopher Johnson所说的那样,我引用了google-play-services_lib,但是它没有起作用。 我添加了google_play_services_lib.jar(看你的SDK /谷歌文件夹)项目属性/ Java构buildpath/库/ Android依赖和错误消失。
与几位开发人员合作时,我遇到了同样的问题。 如果我从我的ADT运行该项目,它运作良好,但从他们的不是..
答案是把他们的SHA-1密钥与包名称放在Google API控制台以及我的。 我们是三个开发人员,所以我们需要放入三个SHA-1密钥。
我希望它给你一些启发…
我也有同样的问题。 我也尝试寻找解决scheme,但是当我没有find任何解决scheme的工作,我试图重新启动我的手机(Android设备),并解决了这个问题。
请试试看! 重新启动您的移动设备和Eclipse安全的一面,并检查它是否工作。
在我的情况下,这意味着,在我的实现中有一些错误,它说,它找不到错误消息的资源在LogCat中正确显示。 当我在我的实现中修复这个错误时,LogCat中的问题也没有了。 所以实际上,除非你错过了一些真正需要的资源,否则你不应该专注于修复缺失的资源,而是修复你的实现。
顺便说一句,错误是我在debugging模式下运行广告,而不进入广告testing模式。
我相信这是目前Google Play服务库(修订版15)中的一个错误,因为潜在的原因似乎是由于读取资源文件失败导致的:
W / ResourceType(25122):请求资源0x7f0c000d失败,因为它很复杂
E / GooglePlayServicesUtil(25122):未findGoogle Play服务资源。 检查您的项目configuration,以确保包含资源。
看起来,Google Play服务库尝试读取资源文件,并且在资源加载失败时显示一条通用的全屏显示此错误消息。 这对应于kreker从库中设法反编译的内容 ,并解释日志消息。
你知道,我不认为这是来自sdk的错误。 “找不到Google Play的服务资源,检查你的项目configuration,确保资源被包含”是完全正确的。 放入你的/ libs的jar文件不包含任何资源,如* xml,* png等。错误日志意味着这一点。 如果您添加了支持库,如v4 , v7-appcompat , v7-cardview , v7-recyclerview , v7-pallete或v7-gridlayout ,有时会logging这意味着资源短缺的情况。 所有这些都是因为项目中的资源不被导入。 所以,像ASAP一样导入支持项目。 当然,你首先通过SDK Manager下载这个支持项目的额外项目
我有同样的问题,我已经创build了自己的API来检查是否安装谷歌播放服务,它对我来说工作正常。 只需通过谷歌播放服务的包信息它会给你的价值
下面是代码:
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; }