Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在更新到com.google.gms:googleservices:3.0.0后获取gradle异常_Android_Firebase_Build.gradle_Android Productflavors_Android Build Type - Fatal编程技术网

Android 在更新到com.google.gms:googleservices:3.0.0后获取gradle异常

Android 在更新到com.google.gms:googleservices:3.0.0后获取gradle异常,android,firebase,build.gradle,android-productflavors,android-build-type,Android,Firebase,Build.gradle,Android Productflavors,Android Build Type,昨天,我将我的google services gradle插件更新为: dependencies { classpath 'com.android.tools.build:gradle:2.2.0' classpath 'com.google.gms:google-services:3.0.0' } 在此之后,我的devDebugflavor构建中出现以下错误: Error:org.gradle.api.GradleException: No match

昨天,我将我的google services gradle插件更新为:

dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'
        classpath 'com.google.gms:google-services:3.0.0'
    }
在此之后,我的
devDebug
flavor构建中出现以下错误:

Error:org.gradle.api.GradleException: No matching client found for package name 'com.example.android.dev'
以下是我的应用程序级别
build.gradle
文件的相关部分:

defaultConfig {
        applicationId 'com.example.android'
        multiDexEnabled true
        minSdkVersion 16
        targetSdkVersion 24
        versionCode 47
        versionName "1.3.2"
        signingConfig signingConfigs.myConfig
        renderscriptTargetApi 24
        renderscriptSupportModeEnabled true
    }
    buildTypes {
        debug {
            applicationIdSuffix = ".dev"
            resValue "string", "app_name", "example-debug"
        }
        release {
            minifyEnabled false
            shrinkResources false
            resValue "string", "app_name", "example"
            signingConfig signingConfigs.myConfig
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
        dev {
            // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
            // to pre-dex each module and produce an APK that can be tested on
            // Android Lollipop without time consuming dex merging processes.
            minSdkVersion 21
        }
        prod {
            // The actual minSdkVersion for the application.
            minSdkVersion 16
        }
    }

此错误不会出现在我的
prodRelease
产品版本中。如何解决此问题?

在控制台上重新注册密钥。开发人员在调试生成类型中使用此软件包:

 debug {
        applicationIdSuffix = ".dev"
    }
此消息

找不到与包名“com.example.android.dev”匹配的客户端

表示您的
google services.json
不包含此包

遵循以下步骤:

  • 转到Firebase控制台
  • 添加另一个android应用程序并注册此软件包
  • 再次导出
    googleservices.json

    • 终于解决了这个问题

      诀窍是将另一个应用程序添加到
      Firebase
      控制台,其中包含调试包名称和调试
      SHA1
      指纹


      这样做实际上会创建两个应用程序,但从任何应用程序下载的
      google services.json
      文件都包含这两个应用程序的信息。

      调试版本的应用程序ID与生产版本的应用程序ID不同。在Firebase控制台中添加一个具有该应用程序ID的Android应用程序,并获得一个新的配置JSON。@EugenPechanec如果我使用调试构建应用程序ID注册,它是否可以跨所有构建类型和风格工作?google-services.JSON将在下载时包含控制台中的所有信息,所以是。@EugenPechanec只是为了澄清,现在,我的应用程序是用包名
      com.example.android
      注册的,我的调试版本有包名
      com.example.android.dev
      。所以我应该在Firebase控制台中用调试构建包的名称注册我的应用程序,对吗?这意味着什么?Amit Tiwari在一分钟前澄清了我的帖子细节。