【问题标题】:Execution failed for task ':app:processReleaseGoogleServices'. > No matching client found for package name任务“:app:processReleaseGoogleServices”执行失败。 > 找不到与包名称匹配的客户端
【发布时间】:2016-06-22 22:41:27
【问题描述】:

每当我尝试构建我的项目时,我都会不断收到此错误:

Execution failed for task ':app:processReleaseGoogleServices'.
No matching client found for package name 'com.my.package'

我已经制作并重新制作了google-services.json,并使用了应用程序和包com.my.package

这是我的项目 build.gradle:

buildscript {
  repositories {
    ...
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:2.0.0-beta6'
    classpath 'com.github.JakeWharton:sdk-manager-plugin:220bf7a88a7072df3ed16dc8466fb144f2817070'
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    classpath 'io.fabric.tools:gradle:1.+'
    classpath 'com.newrelic.agent.android:agent-gradle-plugin:4.265.0'
    classpath 'com.google.gms:google-services:2.0.0-alpha9'
  }
}
allprojects {
  repositories {
    ...
  }
}
// Define versions in a single place
ext {
  supportLibraryVersion = '23.2.0'
  playServicesVersion = '8.4.0'
}

这是我的应用 build.gradle:

  apply plugin: 'android-sdk-manager'
  apply plugin: 'com.android.application'
  apply plugin: 'io.fabric'
  apply plugin: 'newrelic'
  apply plugin: 'com.neenbedankt.android-apt'

  android {
    packagingOptions {
      exclude 'LICENSE.txt'
      exclude 'META-INF/LICENSE'
      exclude 'META-INF/LICENSE.txt'
      exclude 'META-INF/NOTICE'
      exclude 'META-INF/services/javax.annotation.processing.Processor'
    }

    dexOptions {
      jumboMode true
    }

    lintOptions {
      disable 'InvalidPackage'
      abortOnError false
    }

    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    defaultConfig {
      applicationId "com.my.package"
      minSdkVersion 15
      targetSdkVersion 23
    }

    buildTypes {
      debug {
        applicationIdSuffix '.debug'
        versionNameSuffix '-DEBUG'
        ...
      }

      staging {
        applicationIdSuffix '.staging'
        versionNameSuffix '-STAGING'
        ...
      }

      release {
        ...
      }
    }
  }

  dependencies {
    compile "com.android.support:support-v4:$rootProject.supportLibraryVersion",
            "com.android.support:support-annotations:$rootProject.supportLibraryVersion",
            "com.android.support:percent:$rootProject.supportLibraryVersion",
            "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion",
            "com.android.support:mediarouter-v7:$rootProject.supportLibraryVersion",
            "com.google.android.gms:play-services-base:$rootProject.playServicesVersion",
            "com.google.android.gms:play-services-cast:$rootProject.playServicesVersion",
            "com.google.android.gms:play-services-gcm:$rootProject.playServicesVersion",
            "com.google.android.gms:play-services-analytics:$rootProject.playServicesVersion",
            ...
            'com.newrelic.agent.android:android-agent:4.265.0',
            'com.android.support:multidex:1.0.0'
    compile 'com.squareup.dagger:dagger:1.2.1'
  }

  apply plugin: 'com.google.gms.google-services'

我已经多次按照here 的说明进行操作。我也在使用我的发布配置,所以没有任何理由 applicationIdSuffix 应该是一个问题。此外,com.my.pacakage 只是我的 pacakge 名称的替代。我可以做些什么来解决这个问题?

【问题讨论】:

    标签: android google-analytics google-play-services build.gradle newrelic


    【解决方案1】:

    您需要为所有风味(发布和开发等)提供google-services.json

    单个google-services.json 可以包含所有风格的 json/data。转到 Google Developers Console 并重新生成 google-services.json 文件

    更新

    您还可以为风味创建单独的 google-services.json 文件

    https://developers.google.com/android/guides/google-services-plugin

    【讨论】:

      【解决方案2】:

      Google 刚刚在播放服务插件的 2.0 版 中加入了对风味的支持。由于这个版本的gradle插件com.google.gms:google-services:2.0.0-alpha9

      你可以这样做

      更多详情请点击以下链接。 如果您想了解有关此插件对这些 json 文件的作用的更多详细信息,here it is

      Link to the official docs:

      去这里查看this plugin的最新版本:

      Ref link.

      【讨论】:

        【解决方案3】:

        就我而言,它解决了我的问题

              ...  
         "client": [
                {
                  "client_info": {
                    "mobilesdk_app_id": "yourid",
                    "android_client_info": {
                      "package_name": "ru.example.app"
                    }
                  },
               ...
        

        package_name 应与 applicationId 中的相同

                defaultConfig {
                        applicationId "ru.example.app"
                        minSdkVersion 15
                        targetSdkVersion 23
                        ...
            }
        

        【讨论】:

          【解决方案4】:

          问题实际上是 NewRelic 而不是我的配置。当我使用 BuildTypes 时,我删除了它并关注了 this answer。现在它按预期编译。

          【讨论】:

          • NewRelic 是什么意思?
          【解决方案5】:

          可能有点晚了,但我遇到了类似的问题。

          它发生在我最初将我的应用连接到 Firebase 分析时,出于某种原因它只接受了我的“调试”风格。

          我必须登录 Firebase,进入控制台并选择相关项目,然后手动添加额外的“发布”风格。

          然后我重新连接到 Android Studio 中的 Firebase(它会自动将 json 文件从 Firebase 更新并下载到 Studio 中),重新编译我的应用程序并且它工作正常。

          【讨论】:

            猜你喜欢
            • 2021-06-20
            • 1970-01-01
            • 2018-11-14
            • 2019-06-19
            • 1970-01-01
            • 2020-10-19
            • 2021-12-27
            • 2016-04-13
            • 2018-06-14
            相关资源
            最近更新 更多