【问题标题】:Android Studio Gradle: Error:Execution failed for task ':app:processDebugGoogleServices'. > No matching client found for packageAndroid Studio Gradle:错误:任务':app:processDebugGoogleServices'的执行失败。 > 找不到匹配的客户包
【发布时间】:2016-04-13 06:36:44
【问题描述】:

我正在尝试按照 Google 提供的示例将我的 google play 服务依赖项升级到 8.4.0 here,但我收到以下错误('com.example.exampleapp' 是我的应用程序包名称的替代品):

Error:Execution failed for task ':app:processDebugGoogleServices'.
> No matching client found for package name 'com.example.exampleapp'

项目 build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
        classpath 'com.google.gms:google-services:2.0.0-alpha3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

模块 app/build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.example.exampleapp"
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    useLibrary 'org.apache.http.legacy'

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:cardview-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.google.android.exoplayer:exoplayer:r1.5.2'
    compile 'com.google.android.gms:play-services-auth:8.4.0'
    compile 'com.google.android.gms:play-services-maps:8.4.0'
    compile('com.mapbox.mapboxsdk:mapbox-android-sdk:3.0.0@aar') {
        transitive = true
    }
    compile files('libs/commons-lang3-3.3.2.jar')
}

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

gradle-wrapper.properties:

#Fri Jan 01 08:23:56 CST 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip

关于为什么 gradle 无法识别我自己的应用程序包名称的任何想法?


编辑:

好的,这次我遇到了不同的错误。

根据 Shawn Thye 提供的链接,我将其添加到 app/build.gradle 的底部:

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

并留下我之前列出的所有其他内容,我得到了这个错误:

Information:Gradle tasks [clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:compileDebugSources, :app:compileDebugAndroidTestSources]
/Users/user/Documents/AndroidStudio/ExampleApp/app/build.gradle
Error:(1, 1) A problem occurred evaluating project ':app'.
> Failed to apply plugin [id 'com.android.application']
   > Gradle version 2.10 is required. Current version is 2.8. If using the gradle wrapper, try editing the distributionUrl in /Users/user/Documents/AndroidStudio/ExampleApp/gradle/wrapper/gradle-wrapper.properties to gradle-2.10-all.zip
Information:BUILD FAILED
Information:Total time: 0.921 secs
Information:1 error
Information:0 warnings
Information:See complete output in console

和 Gradle 控制台:

Executing tasks: [clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources]

Configuration on demand is an incubating feature.

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/user/Documents/AndroidStudio/ExampleApp/app/build.gradle' line: 1

* What went wrong:
A problem occurred evaluating project ':app'.
> Failed to apply plugin [id 'com.android.application']
   > Gradle version 2.10 is required. Current version is 2.8. If using the gradle wrapper, try editing the distributionUrl in /Users/user/Documents/AndroidStudio/ExampleApp/gradle/wrapper/gradle-wrapper.properties to gradle-2.10-all.zip

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 1.211 secs

所以,然后我根据要求将 gradle-wrapper.properties 更改为“gradle-2.10-all”并收到此错误:

Information:Gradle tasks [clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources]
google-services plugin could not detect any version for com.google.android.gms, default version: 8.3.0 will be used.
please apply google-services plugin at the bottom of the build file.
:clean
:app:clean
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72311Library
:app:prepareComAndroidSupportCardviewV72311Library
:app:prepareComAndroidSupportDesign2311Library
:app:prepareComAndroidSupportGridlayoutV72311Library
:app:prepareComAndroidSupportRecyclerviewV72311Library
:app:prepareComAndroidSupportSupportV42311Library
:app:prepareComDigitsSdkAndroidDigits192Library
:app:prepareComFacebookAndroidFacebookAndroidSdk470Library
:app:prepareComGoogleAndroidExoplayerExoplayerR152Library
:app:prepareComGoogleAndroidGmsPlayServicesAuth840Library
:app:prepareComGoogleAndroidGmsPlayServicesBase840Library
:app:prepareComGoogleAndroidGmsPlayServicesBasement840Library
:app:prepareComGoogleAndroidGmsPlayServicesMaps840Library
:app:prepareComGoogleAndroidGmsPlayServicesMeasurement830Library
:app:prepareComMapboxMapboxsdkMapboxAndroidSdk230Library
:app:prepareComTwitterSdkAndroidTweetComposer102Library
:app:prepareComTwitterSdkAndroidTweetUi180Library
:app:prepareComTwitterSdkAndroidTwitter1110Library
:app:prepareComTwitterSdkAndroidTwitterCore162Library
:app:prepareIoFabricSdkAndroidFabric1310Library
:app:prepareDebugDependencies
:app:compileDebugAidl
:app:compileDebugRenderscript
:app:generateDebugBuildConfig
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets
:app:processDebugManifest
:app:fabricGenerateResourcesDebug
:app:generateDebugResValues UP-TO-DATE
:app:processDebugGoogleServices
Found com.google.android.gms:play-services-auth:8.4.0, but version 8.3.0 is needed for the google-services plugin.
Found com.google.android.gms:play-services-maps:8.4.0, but version 8.3.0 is needed for the google-services plugin.
:app:processDebugGoogleServices FAILED
Error:Execution failed for task ':app:processDebugGoogleServices'.
> Please fix the version conflict either by updating the version of the google-services plugin (information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 8.3.0.
Information:BUILD FAILED
Information:Total time: 5.724 secs
Information:1 error
Information:0 warnings
Information:See complete output in console

Gradle 控制台:

Executing tasks: [clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources]

Configuration on demand is an incubating feature.
google-services plugin could not detect any version for com.google.android.gms, default version: 8.3.0 will be used.
please apply google-services plugin at the bottom of the build file.
Incremental java compilation is an incubating feature.
:clean
:app:clean
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72311Library
:app:prepareComAndroidSupportCardviewV72311Library
:app:prepareComAndroidSupportDesign2311Library
:app:prepareComAndroidSupportGridlayoutV72311Library
:app:prepareComAndroidSupportRecyclerviewV72311Library
:app:prepareComAndroidSupportSupportV42311Library
:app:prepareComDigitsSdkAndroidDigits192Library
:app:prepareComFacebookAndroidFacebookAndroidSdk470Library
:app:prepareComGoogleAndroidExoplayerExoplayerR152Library
:app:prepareComGoogleAndroidGmsPlayServicesAuth840Library
:app:prepareComGoogleAndroidGmsPlayServicesBase840Library
:app:prepareComGoogleAndroidGmsPlayServicesBasement840Library
:app:prepareComGoogleAndroidGmsPlayServicesMaps840Library
:app:prepareComGoogleAndroidGmsPlayServicesMeasurement830Library
:app:prepareComMapboxMapboxsdkMapboxAndroidSdk230Library
:app:prepareComTwitterSdkAndroidTweetComposer102Library
:app:prepareComTwitterSdkAndroidTweetUi180Library
:app:prepareComTwitterSdkAndroidTwitter1110Library
:app:prepareComTwitterSdkAndroidTwitterCore162Library
:app:prepareIoFabricSdkAndroidFabric1310Library
:app:prepareDebugDependencies
:app:compileDebugAidl
:app:compileDebugRenderscript
:app:generateDebugBuildConfig
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets
:app:processDebugManifest
:app:fabricGenerateResourcesDebug
:app:generateDebugResValues UP-TO-DATE
:app:processDebugGoogleServices
Found com.google.android.gms:play-services-auth:8.4.0, but version 8.3.0 is needed for the google-services plugin.
Found com.google.android.gms:play-services-maps:8.4.0, but version 8.3.0 is needed for the google-services plugin.
:app:processDebugGoogleServices FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugGoogleServices'.
> Please fix the version conflict either by updating the version of the google-services plugin (information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 8.3.0.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 5.724 secs

它要求构建文件底部的 google-services 插件,它已经存在,它要求我再次运行 8.3.0 ......我会这样做,因为这是目前唯一有效的东西。 ..

【问题讨论】:

  • 你是如何重命名你的项目的?
  • 自创建项目以来,我没有重命名或重构我的项目。不过,就上面的代码而言,“com.example.exampleapp”是我实际应用程序包名称的替代品。
  • 你解决了吗?我也面临同样的问题
  • 不幸的是还没有。我现在恢复到 8.3.0...
  • 你能发布整个 logcat 吗?看起来这不是您收到的错误的底线,可能还有更多。

标签: android android-studio android-gradle-plugin google-play-services build.gradle


【解决方案1】:
"client": [
{
  "client_info": {
    "mobilesdk_app_id": "9:99999999:android:9ccdbb6c1ae659b8",
    "android_client_info": {
      "package_name": "[packagename]"
    }
  }

package_name 必须与清单文件中的内容匹配。如果您查看下面的示例照片,您可以找到 google-services.json 文件。

【讨论】:

  • 谢谢,这正是我的情况
  • 解决了我的问题。
  • 解决了我的问题!谢谢!
  • 问题在这里“google-services.json”正如你提到的......谢谢:)
  • 谢谢,你节省了我很多时间
【解决方案2】:

简单易行在我的情况下,它通过以下方式解决

确保您在 mainifests 文件中的包名与您的 gradle 的 applicationId 相同。

【讨论】:

  • 这对我来说是真正的解决方案!谢谢 Hiren。
  • yaap,因为之前我只是在清单中更改包名称。 Thaaanksssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
  • Chris Brother 和 Zacharia Brother 来得很好
  • google-services.json 在我的例子中没有正确的包名。
  • 如果我的回答有用且真实,请标记为真实
【解决方案3】:

切换口味时发生在我身上。

现在您还可以使用不同风格的 google-services.json

https://stackoverflow.com/a/34364376/570168

【讨论】:

  • 这是检查上面是否仍然没有解决问题的一个。不错的@Lord Flash
【解决方案4】:

解决了获取异常的问题

java.lang.IllegalStateException:默认 FirebaseApp 不是 在这个过程中初始化确保调用 首先是 FirebaseApp.initializeApp(Context)。

在 FirebaseInstanceId.getInstance().getToken() 中

检查 package_name 是否与 applicationId 完全匹配 1) build.gradle

defaultConfig {
        applicationId "build.gradle.exactly.matches.json"
...
}

应该完全匹配 2) google-services.json

{
      "client_info": {
        "mobilesdk_app_id": "xxxxxxxxxxxxxxxxxxxxxxxxxx",
        "android_client_info": {
          "package_name": "build.gradle.exactly.matches.json"
        ....

【讨论】:

    【解决方案5】:

    只有当我尝试构建我的调试构建类型时,才会发生同样的错误。我解决它的方法是将我的google-services.json 更改为我的调试构建类型。 我的原始字段有一个名为client_id 的字段,值为android:com.example.exampleapp,我只是删除了android: 前缀并保留为com.example.exampleapp,之后我的gradle 构建成功。

    希望对你有帮助!

    编辑

    我刚刚在我的google-services.json 中添加了android: 前缀,它继续正常工作。不确定到底发生了什么,但我能够通过上述解决方案解决我的问题。

    【讨论】:

    • 无论哪种方式,我都会遇到相同的错误。不过谢谢!
    • 在 gradle wrapper 中将版本从 2.8 更改为 2.10,然后是 File -:> Invalidate cache/Restart
    • 所以这不完全是一个答案。我不会因为你的努力而拒绝它。但如果你有更好的答案,那将是一个很大的帮助。
    • 优秀/我的清单和 google-services.json 中的包名称不同
    • 优秀的答案。我怀疑是基于 processGoogleDebugServices 的错误......
    【解决方案6】:

    用于修复:

    找不到与包名称“com.example.exampleapp”匹配的客户端:

    您应该从here 为您的包获得一个有效的google-service.json 文件

    用于修复:

    请通过更新版本来修复版本冲突 google-services 插件(有关最新版本的信息是 可在 https://bintray.com/android/android-tools/com.google.gms.google-services/) 或将 com.google.android.gms 的版本更新为 8.3.0。:

    您应该将apply plugin: 'com.google.gms.google-services' 移动到应用程序gradle.build 文件的末尾。像这样的:

    dependencies {
        ...
    }
    apply plugin: 'com.google.gms.google-services'
    

    【讨论】:

      【解决方案7】:

      我在使用 Firebase 时遇到了这个问题,我认为不同的包会导致问题。

      我通过在 Firebase 控制台中添加新应用程序包来解决,然后再次下载 google-services.json。

      【讨论】:

        【解决方案8】:

        在 android studio 中打开 google-services.json 我们可以看到一个 json 对象,并在 'client' jsonarray 中包含以下项目

        "client_id": "android:你的包名", "package_name": "你的包名",

        请验证您的包裹并继续。

        【讨论】:

          【解决方案9】:

          我发现使用此配置成功:

          classpath 'com.android.tools.build:gradle:1.5.0'
          classpath 'com.google.gms:google-services:2.0.0-alpha3'
          //or use
          //classpath 'com.android.tools.build:gradle:2.0.0-alpha6'
          

          distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
          

          使用 8.40 Google Play 服务。 Alpha5 和 Alpha6 给出了与您相同的 2.8 错误,无论 distributionUrl 为 2.10

          【讨论】:

            【解决方案10】:

            当我下载的 google-services.json 文件中没有显示我的包名称时,我发生了这种情况。打开您的 google-services.json 文件并确保有一个 client_info 对象,该对象的包名称与您的清单包名称相对应。

            在 googleservices.json 中:

            "client": [
              {
                "client_info": {
                "mobilesdk_app_id": "my-app-id",
                "android_client_info": {
                  "package_name": "com.me.android.test.myapp"
              }
            

            在您的清单中:

            <manifest xmlns:android="http://schemas.android.com/apk/res/android"
            package="com.me.android.test.myapp" >
            

            您可能需要为您的项目重新创建一个新的 google-services.json,您可以在此处创建:https://developers.google.com/mobile/add?platform=android&cntapi=gcm

            【讨论】:

              【解决方案11】:

              您的 google-services.json 软件包名称必须与您的 build.gradle applicationId 匹配(applicationId “您的软件包名称”)

              【讨论】:

                【解决方案12】:

                如果您在重命名您的应用程序包名称后发生这种情况,那么您需要更新以下内容:

                1)google-services.json 文件,方法是在文件中查找“package_name”属性并使用新的包名称更新它。

                2) 在 Google Developers Console 中更新您的应用程序客户端凭据,方法是转到 Credentials 并选择您的 android 客户端密钥,然后使用新的更新包名称。

                希望这会有所帮助。

                【讨论】:

                  【解决方案13】:

                  检查,在您的“google-services.json”文件中,您的 package_name 是否可用

                  【讨论】:

                    【解决方案14】:

                    我有同样的问题,只是很容易解决它确保 manifest.xml 文件中 mainfest 标记中的包的包名和 gradle 应用程序级别文件中的应用程序标记中的 applicationId 具有相同的包名

                    在 manifest.xml 中

                    package="com.example.work"
                    

                    在 gradle 应用级别

                    applicationId "com.example.work"
                    

                    希望对你有帮助

                    【讨论】:

                      【解决方案15】:

                      1)检查 google-services.json 文件中的包名是否相同

                      2)确保不存在具有相同包名的其他项目

                      3)确保有互联网访问

                      4)尝试同步项目并再次运行它

                      【讨论】:

                        【解决方案16】:

                        在项目 gradle 文件中添加这个

                        classpath 'com.google.gms:google-services:3.0.0'
                        

                        【讨论】:

                          【解决方案17】:

                          我认为是因为您使用的是 play-service 8.4.0

                          需要

                          classpath 'com.android.tools.build:gradle:2.0.0-alpha5'
                          classpath 'com.google.gms:google-services:2.0.0-alpha5'
                          

                          您也可以参考this

                          【讨论】:

                          • 这给了我一个不同的错误:错误:(37、13)无法解决:com.google.android.gms:play-services-auth:2.0.0-alpha5错误:(38 , 13) 无法解决:com.google.android.gms:play-services-maps:2.0.0-alpha5 警告:需要 Gradle 版本 2.10。当前版本是 2.4。如果使用 gradle 包装器,请尝试在 ... 中编辑 distributionUrl
                          • @TangoJLabs no!,这是类路径,不是编译库
                          【解决方案18】:

                          对我来说,我必须检查 google-services.json 文件并确保 "package_name" 正确设置为我的 android 应用程序的包名称。就我而言,自动生成的服务文件附加了.backend

                          【讨论】:

                            【解决方案19】:

                            当我下载的 google-services.json 文件中没有显示我的包名称时,我发生了这种情况。打开您的 google-services.json 文件并确保有一个 client_info 对象,该对象的包名称与您的清单包名称相对应。

                            确保您的项目 ma​​nifest 中的包名称与 google-services.json 文件中的包名称完全相同

                            谢谢。

                            【讨论】:

                              【解决方案20】:

                              只需 Android Studio 运行“以管理员身份运行”即可运行

                              或在 google-services.json 文件中验证您的软件包名称

                              【讨论】:

                                【解决方案21】:

                                经过上述研究,清单文件中的包名称和 gradle 构建文件中的应用程序 ID 应该相同。我的问题没有解决。

                                实际上,您在 gradle 构建文件中的应用程序 ID 应该与您在 google-services.json 文件中的包名称相同。如果您的 google-services.json 文件具有不同的包名称。从谷歌分析或 Firebase 控制台中删除该应用程序。并获取一个新文件。

                                【讨论】:

                                  【解决方案22】:

                                  请验证build.gradle.

                                  defaultConfig {
                                          applicationId "<packagename>"
                                          minSdkVersion 15
                                          targetSdkVersion 23
                                          versionCode 1
                                          versionName "1.0"
                                      }
                                  

                                  验证包名,也可能会报错。

                                  【讨论】:

                                    【解决方案23】:

                                    两次写包名时: 1.在Android Studio中新建项目时 和 2. 创建配置文件时

                                    你应该用小写字母写 - 改成小写后它可以工作。如果您不想浪费时间,只需转到 .json 文件并将 com.myname.MyAPPlicationnamE 替换为 com.myname.myapplicationname(对于 json 文件中的每个匹配项)。

                                    【讨论】:

                                      【解决方案24】:

                                      如果您运行其他类型的构建(例如签名 apk 等),您必须选择构建的应用类型然后运行项目。

                                      请看下图。为了运行这个项目,我们必须在运行配置弹出窗口中选择“app”。

                                      【讨论】:

                                        【解决方案25】:

                                        就我而言,我只需要这样做

                                        1. 点击构建
                                        2. 点击制作项目

                                        然后一切顺利。我仍然不知道发生了什么。

                                        【讨论】:

                                          猜你喜欢
                                          • 2018-11-14
                                          • 2021-06-20
                                          • 2016-02-07
                                          • 2018-05-28
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 2016-06-22
                                          • 1970-01-01
                                          相关资源
                                          最近更新 更多