Google宣布新的sdk版本控制系统后,Gradle项目同步失败

kas*_*ash 30 android gradle firebase

我收到以下错误:

Cannot change dependencies of configuration ':app:api' after it has been included in dependency resolution.
Run Code Online (Sandbox Code Playgroud)

更新: 我能够在com.google.gms:google-services:3.3.0禁用数据绑定时使用,但对于需要启用数据绑定的人来说,这不是一个解决方案.

谷歌宣布新的sdk版本控制系统(链接)后,我做了以下步骤:

  1. 我按指示更新了gradle文件,分别包含gms和firebase版本号.更新了apply插件行,更新了类路径.我仍然得到错误,不知道原因.

  2. 以下是相关的gradle文件:

build.gradle(main):

buildscript {
    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/rvalerio/maven' }
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
        classpath 'com.google.gms:google-services:3.3.0'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        classpath 'io.realm:realm-gradle-plugin:4.3.3'
        classpath 'io.fabric.tools:gradle:1.25.1'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
        maven { url 'https://maven.google.com' }
    }
}
Run Code Online (Sandbox Code Playgroud)

build.gradle(模块:app)

apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)

Firebase依赖项:

//Firebase Dependencies
implementation "com.google.firebase:firebase-messaging:15.0.2"
implementation "com.google.firebase:firebase-core:15.0.2"
implementation "com.google.firebase:firebase-config:15.0.2"
implementation('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') {
    transitive = true
}
Run Code Online (Sandbox Code Playgroud)

GMS和其他依赖项

implementation "com.android.support:recyclerview-v7:27.1.1"
implementation "com.android.support:support-v4:27.1.1"
implementation "com.android.support:cardview-v7:27.1.1"
implementation "com.android.support:design:27.1.1"
implementation "com.android.support:support-v13:27.1.1"
implementation "com.android.support.constraint:constraint-layout:1.1.0"
implementation "com.google.android.gms:play-services-location:15.0.1"
implementation "com.google.android.gms:play-services-vision:15.0.1"
implementation "com.google.android.gms:play-services-auth:15.0.1"
implementation "com.google.android.gms:play-services-maps:15.0.1"
Run Code Online (Sandbox Code Playgroud)
  1. 我从安卓3.1.2工作室上粘贴引擎收录错误日志这里.

任何帮助表示赞赏!

Mar*_*ler 15

设法在15.0.0 启用数据绑定的情况下针对Play Services和Firebase进行构建......我的依赖关系现在看起来很相似,并且它再次构建,没有任何Cannot change dependencies of configuration抱怨:

buildscript {

    dependencies {

        classpath "com.android.tools.build:gradle:3.1.2"

        // do not update, because 3.3.1 appears broken
        // classpath "com.google.gms:google-services:3.2.1"

        // meanwhile, there is version 4.0.2 available
        classpath "com.google.gms:google-services:4.0.2"
    }
}
Run Code Online (Sandbox Code Playgroud)

一个人必须单独引用所有库.仅仅引用com.google.android.gms:play?services和/或com.google.firebase:firebase-core不再起作用15.0.0.

android {

    dependencies {

        // Play Services 15.0.0
        implementation "com.google.android.gms:play-services-base:15.0.1"
        implementation "com.google.android.gms:play-services-auth:15.0.1"
        implementation "com.google.android.gms:play-services-identity:15.0.1"

        // Firebase 15.0.0
        implementation "com.google.firebase:firebase-core:15.0.2"
        implementation "com.google.firebase:firebase-database:15.0.1"
        implementation "com.google.firebase:firebase-firestore:16.0.0"
        implementation "com.google.firebase:firebase-storage:15.0.2"
        implementation "com.google.firebase:firebase-crash:15.0.2"
        implementation "com.google.firebase:firebase-auth:15.1.0"
        implementation "com.google.firebase:firebase-messaging:15.0.2"
        implementation "com.google.firebase:firebase-config:15.0.2"
        implementation "com.google.firebase:firebase-invites:15.0.1"
        implementation "com.google.firebase:firebase-ads:15.0.1"
        implementation "com.google.firebase:firebase-appindexing:15.0.1"
        implementation "com.google.firebase:firebase-perf:15.2.0"
        implementation "com.google.firebase:firebase-functions:15.0.0"
    }
}

apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)

还必须编辑Manifest.xml以修复支持库:

<application>

    <meta-data
        android:name="android.support.VERSION"
        android:value="27.1.1"
        tools:replace="android:value"/>

</application
Run Code Online (Sandbox Code Playgroud)


Car*_*men 5

此处报告了数据绑定问题和插件3.3.0版本google-services:https://issuetracker.google.com/issues/79122163

截至今天,该bug处于"已分配"状态.


kas*_*ash 2

这个问题似乎已经通过使用新的 google-services 版本(截至今天为 4.0.1)得到解决。以下是可解决上述问题的相关版本:

在您的项目 build.gradle 文件中:

dependencies { 
classpath 'com.android.tools.build:gradle:3.1.3'
classpath 'com.google.gms:google-services:4.0.1' }
Run Code Online (Sandbox Code Playgroud)

在您的应用程序 build.gradle 文件中:

//Firebase Dependencies
implementation "com.google.firebase:firebase-messaging:17.0.0"
implementation "com.google.firebase:firebase-core:16.0.0"
implementation "com.google.firebase:firebase-config:16.0.0"
implementation 'com.google.firebase:firebase-perf:16.0.0'

...} apply plugin: "com.google.gms.google-services"
Run Code Online (Sandbox Code Playgroud)

数据绑定也设置为 true:

dataBinding {
    enabled = true
}
Run Code Online (Sandbox Code Playgroud)

Android Studio版本:3.1.2

感谢大家提供了解决该问题的各种方法,例如 @Kyle 的回答以及向您展示如何在没有 google 服务的情况下使用 firebase 的中型帖子链接。