我有一个使用 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"
再一次,该应用程序似乎运行良好。也许忽略这些“错误”是安全的?
Project > Clean
下)。我注意到这有时会修复 R.java/resource 问题。
我不断收到错误消息“找不到 Google Play 服务资源。检查您的项目配置以确保包含资源。您可以放心地忽略此消息。您的应用仍会获取和投放横幅广告。
因此,如果您正确包含了 google-play-services_lib,并且您收到了广告,那么您无需担心(我猜......)
这是 Google Play 服务库中的一个错误,在 issue 755 下归档。
不幸的是,目前还没有任何解决方案。
我今天早上刚遇到这个问题,看起来很奇怪,因为我的应用程序直到今天都运行良好。我收到了完全相同的“未找到 Google Play 服务资源...”消息。
我尝试打开常规的 Google 地图应用程序以查看是否可以获取我的位置,但找不到。即使在等待 5 分钟后,这也足以正常通过手机信号塔从服务提供商那里获得位置。所以我检查了位置服务。
无论如何,问题出在我的 S3 上的 Location Services -> Google Location Services 下。它没有被检查。其他两个位置选项被选中(VZW 位置服务和独立 GPS 服务),但最后一个,谷歌位置服务没有。打开它后,普通的谷歌地图可以找到我的位置,我的应用程序可以找到我的位置,问题就消失了。
由于以下原因弹出错误消息:
mMap.setMyLocationEnabled(true);
未启用 Google 位置服务时。
在进行更多测试后,如果当前位置为空(无法从所有来源确定),那么在尝试打开 setMyLocationEnabled 时会出现此错误。
我已经反编译了 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
,因此可能存在一些其他错误。虽然我的应用程序中的横幅工作正常......
您必须将 google-play-services-lib
添加为库项目。他们更新了 SDK。周围有几个教程。对于 Eclipse,这很容易:
Right click project -> properties -> Android
https://i.stack.imgur.com/JDv0L.jpg
有关更详细的演练:
How to get GoogleMaps running on emulator
我也有这个问题。我解决它的方法如下:
删除 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 引用添加到您的项目中。
这对我有用。我希望它也能帮助你!
我在使用 Admob 时遇到了这个问题,只是因为我忘记将我的广告单元 ID 写入 @string
。
我遇到过同样的问题。在 Google API 控制台中,您应该检查是否只为该应用生成了一个密钥。我有一段时间将我的代码从一台 PC 迁移到另一台 PC 等等(它变得很乱),并且我的一个项目有多个密钥。旧密钥在 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”)。
为了解决该错误,许多人建议使用原始值 4030500 而不是 @integer/google_play_services_version
,但它仅适用于 Google 服务修订版 13。
如果您使用任何旧版本或 Froyo 版本(如我),您应该在其中添加另一个值。要知道应该放什么值,只需打开 Google Play 服务清单并复制粘贴 version_code 值。对于 Froyo 服务,它是 3265130。添加后,我不再收到此错误,并且我终于开始在我的应用程序中接收坐标。
对我来说,唯一可行的解决方案是添加 android-support-v7-appcompat 库。似乎还需要这个库才能摆脱该消息。从那时起,我的应用程序一直运行良好!
我希望它有帮助!
对于 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 中是必须的,为什么我们不能只导入库或项目。
Java
、Maven
、Gradle
、JavaFX Application
、Command Line App
、Groovy
、Griffon
、Gradle: Android Module
、Gradle: Android Project
、Gradle: Java Library
) .然后在字段 Content root
中选择一个文件夹。 Java
是选择正确的模块类型吗?
我也有同样的问题。在开始时,它工作正常,但后来我从我的设备上完全卸载了我的应用程序(我在我的手机上运行它)并再次运行它,它向我显示了同样的错误。
我在工作时包含了所有库和资源,但我仍然收到此错误,因此我从项目构建中删除了所有引用和库,将谷歌服务播放更新到修订版 10,从设备中完全卸载应用程序,然后再次添加所有资源和库并运行它,它又开始工作了。
这里要注意的一件事是,在运行时我仍然在 LogCat 中看到此错误消息,但在我的设备上它现在工作正常。
我也有同样的问题。我也尝试寻找解决方案,但在没有找到任何解决方案后,我尝试重新启动我的手机(Android 设备),它解决了问题。
请试一试!为了安全起见,重新启动您的移动设备和Eclipse并检查它是否正常工作。
我有同样的问题,我创建了自己的 API 来检查是否安装了谷歌播放服务,它对我来说很好。只需传递谷歌播放服务的包裹信息,它会给你带来价值
下面是代码:
LOG.d(LOG_IDENTIFIER, "info : "+ info);
return true;
}
catch(PackageManager.NameNotFoundException e)
{
e.printStackTrace();
LOG.e(LOG_IDENTIFIER, "NameNotFoundException : "+ e.getMessage());
}
return false;
}
对我来说,删除以下代码修复了它!
mLocationClient.setMockMode(true);
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) .但是上面的那条小线解决了所有问题。
我有同样的问题。正如 Kristopher Johnson 所说,我引用了 google-play-services_lib,但它没有用。我在项目属性/java 构建路径/库/android 依赖项下添加了 google_play_services_lib.jar(查看您的 SDK/google 文件夹),并且错误消失了。
与多个开发人员合作时,我遇到了完全相同的问题。如果我从我的 ADT 运行该项目,它运行良好,但从他们的它不是......
答案是将他们的 SHA-1 密钥与包名放在 Google API console 和我的一样。我们是三个开发人员,所以我们需要输入三个 SHA-1 密钥。
我希望它能给你一些启发......
就我而言,这意味着在我的实现中存在某种错误,它说它找不到资源以在 LogCat 中正确显示错误消息。当我在我的实现中修复了这个错误时,来自 LogCat 的问题也消失了。所以实际上,除非你错过了一些真正必要的资源,否则你不应该集中精力修复丢失的资源,而是修复你的实现。
顺便说一句,错误是我在调试模式下运行广告而没有进入广告测试模式。
我认为这是当前 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 项下下载这个支持项目
不定期副业成功案例分享