无法获得未知属性' processReleaseGoogleServices'

时间:2016-09-21 00:28:17

标签: android android-studio gradle

我更新了使用Android Studio 2.2和Gradle 2.2.0。现在我遇到了问题。

我按照这篇文章https://medium.com/google-cloud/automatic-per-variant-google-services-json-configurations-with-gradle-d3d3e40abc0e#.g1p7c1tx2配置了两个" google-services.json"用于dev vs prod的文件构建并在我的app / build.gradle文件中使用以下方法在复制两个" google-services.json"之间进行切换。文件。

afterEvaluate {
    processDebugGoogleServices.dependsOn switchToDebug
    processReleaseGoogleServices.dependsOn switchToRelease
}

task switchToDebug(type: Copy) {
    description = 'Switches to DEBUG google-services.json'
    from "src/gcm-dev"
    include "google-services.json"
    into "."
}

task switchToRelease(type: Copy) {
    description = 'Switches to RELEASE google-services.json'
    from "src/gcm-prod"
    include "google-services.json"
    into "."
}

Gradle符合条件,但是当我点击"运行应用程序" (三角形"播放"图标)或"调试应用" (三角形"播放"带有错误的图标)Android Studio中的按钮,我得到以下内容:

* What went wrong:
A problem occurred configuring project ':app'.
> Could not get unknown property 'processReleaseGoogleServices' for object of type com.android.build.gradle.AppExtension.

请帮助,非常感谢。

4 个答案:

答案 0 :(得分:6)

我遇到了同样的问题,启用了即时运行问题。尝试禁用它并再次运行。

答案 1 :(得分:1)

另一种方法是以下列方式引用任务:

tasks.whenTaskAdded { task ->
    if (task.name == 'assembleDebug') {
        task.dependsOn 'switchToDebug'
    } else if (task.name == 'assembleRelease') {
        task.dependsOn 'switchToRelease'
    }
}

<强>更新

您在评论中提到的问题与您的google-services.json文件有关。您需要将google-services.json放入app/ dir。对于每个构建类型,app/src文件夹中应该有一致的导演。 如果文件已存在,请检查其中是否包含正确的包名称

"client_info": {
"mobilesdk_app_id": "1:6596814400689:android:65d6f25f5006145",
"android_client_info": {
  "package_name": "com.my.app.package.name"
}

答案 2 :(得分:1)

您还应该更新Google Play服务gradle插件,请按照文档进行设置:https://developers.google.com/android/guides/google-services-plugin

最棒的是,您不再需要编写gradle任务,这些任务会在根目录中创建适当的google-services.json文件。现在,插件支持构建类型特定google-services.json

  

“从版本2.2.0开始,该插件支持构建类型和产品风格   特定的JSON文件。所有以下目录结构都是   有效的“

答案 3 :(得分:0)

如@Singed所述,在src-directory下添加一个目录pr build type / flavor,相应的google-services.jsonGoogle Play gradle plugin将处理剩下的事情,例如:

src/
    debug/google-services.json
    release/google-services.json

在构建过程中,将处理正确的文件,最后在build/generated/res/google-services/debug|release/values/values.xml