GoogleService无法初始化

时间:2015-12-18 23:18:19

标签: android google-maps android-mapview android-maps-v2

我在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'

抱怨什么,如何减轻它?

10 个答案:

答案 0 :(得分:52)

[来自Product Manager @ Google]

您可以按照以下步骤下载并复制Android应用的google-services.json文件来解决此问题:

  • this link选择您的应用/项目名称和Android包名称,然后点击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解决了问题。

以下是步骤:

  1. this link获取配置文件google-services.json

  2. 将刚刚下载的google-services.json文件复制到Android Studio项目的app /或mobile /目录中。

  3. 将依赖项添加到项目级build.gradle:

    classpath 'com.google.gms:google-services:1.5.0-beta2'
    
  4. 将插件添加到您的应用级build.gradle:

    apply plugin: 'com.google.gms.google-services'
    
  5. 将此依赖项添加到您的应用级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:

有关

https://developers.google.com/app-indexing/android/publish

答案 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文件中更改应用的versionCodeversionName

答案 8 :(得分:0)

快速修复我用的是禁用签名。如果您不想创建生产代码,可以将构建变量设置为debug,localOldDebug或localDebug。

点击Android Studio左下角的Build Variants。

how-to-disable-generated-signed-apk-android-studio

答案 9 :(得分:-1)

只是有另一个解决方案,我意外删除

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
        .findFragmentById(R.id.map);
mapFragment.getMapAsync(this);

添加此工作,适用于新解决方案