我在Android应用程序中使用谷歌地图。我已经创建了密钥并在清单文件中添加了必要的权限。但很快我启动应用程序,我在调试器中收到此消息:
GoogleService初始化失败,状态:10,缺少预期 资源:' R.string.google_app_id'用于初始化Google服务。 可能的原因是缺少google-services.json或 com.google.gms.google-services gradle plugin。
我不确定这是错的。地图工作正常,我可以毫无问题地使用它。我的gradle文件有这个条目:
compile' com.google.android.gms:play-services:8.4.0'
抱怨什么,如何减轻它?
答案 0 :(得分:52)
[来自Product Manager @ Google]
您可以按照以下步骤下载并复制Android应用的google-services.json
文件来解决此问题:
Continue to Choose and configure services
。Continue to Generate Configuration files
。google-services.json
并将文件复制到Android项目中的app/
或mobile/
模块目录。如果您之前已将Google项目导入Firebase,则可以 从项目设置下的Firebase console获取更新的google-services.json。
由于google_app_id指的是项目中的应用而不是项目本身,请勿复制 PROJECT_NUMBER,因为其他答案之一是建议的。
答案 1 :(得分:10)
就我而言,导致此错误的原因是Gradle的Google服务插件和Play服务库是不兼容的版本。兼容版本的说明:
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
答案 2 :(得分:3)
我遇到了同样的问题并按照official solution解决了问题。
以下是步骤:
从this link获取配置文件google-services.json
。
将刚刚下载的google-services.json
文件复制到Android Studio项目的app /或mobile /目录中。
将依赖项添加到项目级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"
}
答案 3 :(得分:1)
对于Xamarin / Visual Studio Mac,我需要将其添加到Droid.csproj的底部
Puppeteer
https://github.com/xamarin/GooglePlayServicesComponents/issues/64
答案 4 :(得分:0)
这也发生在我身上。在我的情况下,这是因为Android工作室试图在我的主要活动中插入一些代码。删除代码修复了错误
插入的代码与App Indexing:
有关答案 5 :(得分:0)
那时我遇到了同样的问题。能够通过仅使用必要的播放服务库来解决它,在我的情况下是GCM。
我使用com.google.android.gms:play-services:8.4.0
而不是com.google.android.gms:play-services-gcm:8.4.0
。有关详细信息,请参阅here;这也解决了多指标问题。
然后我应用了@Radix和@Alexal的方法来删除GCM在logcat中输出的有关google-services.json
的消息。
答案 6 :(得分:0)
对于那些即使在正确设置播放服务并将google-services.json
文件放入project/app
文件夹后遇到此问题的人,实际的解决方案是
Build > Rebuild Project
可能是因为在执行完全重建之前,json文件中的字符串未集成到已编译的资源中。
答案 7 :(得分:0)
您可以在Gradle文件中更改应用的versionCode
和versionName
。
答案 8 :(得分:0)
快速修复我用的是禁用签名。如果您不想创建生产代码,可以将构建变量设置为debug,localOldDebug或localDebug。
点击Android Studio左下角的Build Variants。
答案 9 :(得分:-1)
只是有另一个解决方案,我意外删除
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
添加此工作,适用于新解决方案