我用我的Android应用程序谷歌地图。 我已创建的密钥和清单文件中添加必要的权限。 但很快我开始了我的应用程序在调试器中得到这个消息:
GoogleService初始化失败,状态:10,缺少预期的资源:“R.string.google_app_id”初始化谷歌服务。 可能的原因是缺少谷歌,services.json或com.google.gms.google服务gradle这个插件。
我不知道什么是错。 该地图是工作的罚款,我可以使用它没有任何问题。 我gradle这个文件有以下条目:
编译“com.google.android.gms:播放服务:8.4.0”
它是什么抱怨?如何缓解呢?
您需要将配置文件( google-services.json
所产生) developer.google.com ,作为官方文档的第2步中提到这里
这个过程很简单
- 您可以选择您的项目或创建一个新的。
然后选择(在这种情况下,地图服务),所需的服务后,就可以生成配置文件。
对于谁已迁移到火力地堡计划的人,他们可以通过将得到同样的火力地堡控制台 ,选择您的项目,并在设置你会发现配置文件。
然后引官方文档的第3步这里
复制google-services.json
您刚刚下载到应用程序/或移动/你的Android的目录文件
PS:对于人们downvoting这个答案,请不要离开,为什么你反对投票提出意见。
[从产品经理@谷歌]
您可以通过下载和复制解决这个问题, google-services.json
按照以下步骤为你的Android应用程序文件:
- 从选择您的应用程序/项目名称和Android软件包名这个链接 ,并点击
Continue to Choose and configure services
。 - 点击
Continue to Generate Configuration files
。 - 下载
google-services.json
和文件复制到app/
或mobile/
模块目录在你的Android项目。
如果您之前已经导入了谷歌的项目进入火力地堡,你可以从更新的谷歌,services.json 火力地堡控制台项目设置下。
通过其他的答案中的一个作为建议,因为google_app_id是指对您的应用项目,而不是项目本身不要复制 PROJECT_NUMBER。
在我而言,这个错误的原因是,对摇篮的谷歌服务插件和播放服务库是不兼容的版本。 说明兼容版本:
1)添加的依赖到你的项目级的build.gradle:
classpath 'com.google.gms:google-services:1.5.0-beta2'
2)插件添加到您的应用程序级的build.gradle:
apply plugin: 'com.google.gms.google-services'
3)如果你使用过Android Studio,这是添加到您的应用程序的build.gradle文件的相关性部分的字符串:
dependencies {
compile "com.google.android.gms:play-services:8.3.0"
}
来源: https://developers.google.com/cloud-messaging/android/client
我遇到了同样的问题,解决它遵循了官方的解决办法 。
具体操作步骤如下:
获取配置文件, google-services.json
从这个链接 。
复制google-services.json
您刚刚下载到你的Android Studio项目的应用程序/或移动/目录下的文件。
依赖添加到您的项目级的build.gradle:
classpath 'com.google.gms:google-services:1.5.0-beta2'
该插件添加到您的应用程序级的build.gradle:
apply plugin: 'com.google.gms.google-services'
这种依赖关系添加到您的应用一级的build.gradle:
dependencies { compile "com.google.android.gms:play-services:8.3.0" }
对于Xamarin / Visual Studio中的Mac,我需要把它添加到我的Droid.csproj底部
<Target Name="ProcessGoogleServicesJson" Condition=" '@(GoogleServicesJson)' != '' AND '$(AndroidApplication)' == 'True' AND '$(DesignTimeBuild)' != 'True'" BeforeTargets="$(ProcessGoogleServicesJsonBeforeTargets)" AfterTargets="$(ProcessGoogleServicesJsonAfterTargets)">
<Message Text="Using ProcessGoogleServicesJson override" Importance="high" />
<ProcessGoogleServicesJson GoogleServicesJsons="@(GoogleServicesJson)" IntermediateOutputPath="$(IntermediateOutputPath)" MonoAndroidResDirIntermediate="$(MonoAndroidResDirIntermediate)" AndroidPackageName="$(_AndroidPackage)">
<Output ItemName="_AndroidResourceDest" TaskParameter="GoogleServicesGeneratedResources" />
<Output ItemName="FileWrites" TaskParameter="GoogleServicesGeneratedResources" />
</ProcessGoogleServicesJson>
<ItemGroup>
<FileWrites Include="$(IntermediateOutputPath)\ProcessGoogleServicesJson.stamp" />
</ItemGroup>
https://github.com/xamarin/GooglePlayServicesComponents/issues/64
这也发生在我身上。 在我的情况,这是因为Android的工作室试图插入一些代码,我的主要活动。 卸下代码修正错误
插入代码是了解应用索引:
https://developers.google.com/app-indexing/android/publish
我有同样的问题,当时的情况。 之所以能够只使用必要的Play服务库,这在我的情况GCM来解决它。
取而代之的com.google.android.gms:play-services:8.4.0
,我用com.google.android.gms:play-services-gcm:8.4.0
。 见这里获得更多信息; 这也解决了multidex问题。
然后,我同时适用@Radix和@亚历山大的方法来删除该消息GCM已在有关的logcat的输出google-services.json
。
对于那些谁面对这个问题即使正确设置播放服务,并把google-services.json
文件中的project/app
文件夹,实际的解决方案是
Build > Rebuild Project
这可能是由于这样的事实:从JSON文件中的字符串没有纳入编制资源,直到完全重建进行。
您可以更改versionCode
和versionName
您的应用程序在你的摇篮文件。
我用了一个快速的解决是禁用签名。 如果你不想创建生产代码,您可以设置构建变量调试,localOldDebug或localDebug。
点击构建变量在底部Android Studio中离开。
如何对禁用生成的签名-APK-机器人工作室
只要有另一种解决办法我我不小心删除
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
增加这个工作,是新的解决方案