android - 谷歌宣布新的 sdk 版本控制系统后 Gradle 项目同步失败

标签 android firebase gradle

我收到以下错误:

Cannot change dependencies of configuration ':app:api' after it has been included in dependency resolution.

更新: 当数据绑定(bind)被禁用时,我可以使用 com.google.gms:google-services:3.3.0 进行构建,但这对于需要启用数据绑定(bind)的人来说不是一个解决方案。

在 Google 发布新的 sdk 版本控制系统 (link) 后,我做了以下步骤:

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

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

build.gradle(主):

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' }
    }
}

build.gradle (Module:app)

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

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
}

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"
  1. 我已从 android studio 3.1.2 here 将错误日志粘贴到 pastebin 上.

感谢任何帮助!

最佳答案

设法针对 Play Services 和 Firebase 15.0.0 启用数据绑定(bind) ...我的依赖项现在看起来像这样,它再次构建,没有任何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"
    }
}

必须单独引用所有库。自 15.0.0 以来,仅引用 com.google.android.gms:play-services 和/或 com.google.firebase:firebase-core 不再起作用.

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'

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

<application>

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

</application

关于android - 谷歌宣布新的 sdk 版本控制系统后 Gradle 项目同步失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50166102/

相关文章:

android - startAfter 在 Firestore android 中不起作用

具有嵌套 Observable/FirebaseObjectObservable 的 Angular2 ngFor 在更新时闪烁一些数据

android - 如何有效地编写针对同一私有(private)库的不同版本的具有不同构建风格的 Android 应用程序

gradle - 如何管理 gradle 模块项目和应用程序之间的复合构建

java - 将单选按钮添加到上下文菜单

android - 需要简单的文件选择器

从 POST 获取InputStream 时出现 JAVA EOFException

android - 如何将多个历史数据添加到 Google Fit

与 Firebase 托管相比,Firebase 存储非常慢

java - 学习Gradle但在工作站上出现以下错误