【问题标题】:Conflict with dependency in project ':app'. Resolved versions for app (15.0.2) and test app (12.0.1) differ (possibly onesignal&firebase issue)与项目 ':app' 中的依赖项冲突。应用程序 (15.0.2) 和测试应用程序 (12.0.1) 的已解决版本不同(可能是一个信号和火力问题)
【发布时间】:2019-01-22 20:42:29
【问题描述】:

我似乎无法在 Android Studio 3.0.1 上为我的应用程序构建 gradle(生成 apk 工作)。以下是构建输出。

Error:FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:preDebugAndroidTestBuild'.
> Conflict with dependency 'com.google.firebase:firebase-messaging' in project ':app'. 
Resolved versions for app (15.0.2) and test app (12.0.1) differ. See https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details.

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

* Get more help at https://help.gradle.org

BUILD FAILED in 23s

Here是build.gradle文件内容。

2018 年 8 月 21 日更新:

我注意到在外部库中,我有冲突

我发现我可以生成 apk (Build APK) 即使 gradle 产生冲突错误。删除 gradle 错误的方法是删除/注释这一行:

implementation 'com.google.android.gms:play-services-places:15.0.1'

但是 APK 无法编译。它曾经可以工作,我意识到这个问题可能是在我不得不将 Firebase 包含在另一个使用相同 Android Studio 的项目(基于 Cordova 的 Android 应用程序)中之后发生的。这个问题不会发生在我的另一台同事机器上。我该如何真正解决这个问题?谢谢

【问题讨论】:

  • 请更新您的帖子以包含项目和应用模块build.gradle 文件。
  • 我已经添加了 build.gradle 文件
  • @Axil 我在您的 build.gradle 文件中看不到这行代码:apply plugin: 'com.google.gms.google-services'。你错过了吗?请回复@。
  • @AlexMamo 它从来没有出现过。我尝试添加该行,但结果如下:Error:(14, 0) Plugin with id 'com.google.gms.google-services' not found.

标签: android gradle build.gradle onesignal


【解决方案1】:

请发布您的 build.gradle 文件。但没有看到它,我的猜测是你有一个 implementationtestImplementation 有不同版本的 com.google.firebase:firebase-messaging

【讨论】:

  • 我已经添加了 build.gradle 文件
【解决方案2】:

它看起来像一个传递依赖问题。 com.google.android.gms:play-servicescom.onesignal:OneSignal 都使用 com.google.firebase:firebase-messaging,但它们可能正在导入不同的版本。我建议升级以使用这些库的最新版本。

【讨论】:

  • 嗯.... 它曾经在我的 Android Studio 上工作过。在这种情况下,某些事情导致它搞砸了。升级,我不确定,因为我有一个程序员这样做,所以这可能是一个问题。有没有更好的方法来处理这个问题,它可以与其他 Android Studio 一起使用,我想做的是为此恢复环境。谢谢。
【解决方案3】:

似乎有两个库依赖于 firebase-messaging 库,它们依赖于不同的版本。要找出它们是哪一个,请转到 Android Studio 中的终端窗口并运行以下命令:

./gradlew app:依赖项

这将以树形结构显示项目中的所有依赖项。一旦您检测到哪些库添加了重复库,您可以尝试以下方法之一:

1) 检查 build.gradle 中其他版本的父依赖项,它们都使用相同版本的传递重复依赖项。

2) 从父依赖中排除版本较低的依赖。示例:

  implementation('com.example.abc:def:1.0.0') {
     exclude group: 'com.google.firebase', module: 'firebase-messaging' 
  }

3) 执行带有解决策略的固定版本:

configurations.all {
  resolutionStrategy { 
     force com.google.firebase:firebase-messaging:15.0.2
  }
}

【讨论】:

    【解决方案4】:

    依赖OneSignal使用旧版本play-service

    你有这些方法来解决这个问题。

    • 从 OneSignal 中排除 play-service 并强制使用您正在使用的最新版本。 (如@gizembrh answer)。 (我不建议,因为 OneSignal 的代码可能会因新的播放服务而崩溃
    • 下载 OneSignal sdk 并将其作为模块放入您的项目中。然后更新 OneSignal 的播放服务版本,解决它的弃用方法(如果有的话)。 (冗长的工作
    • 将您的play-service 版本降级为同一版本的OneSignal。 (我认为最简单的

    我认为第三种选择最适合您。因为您只需要降级您的播放服务版本。见OneSignal build.gradle play-service version

    def playServicesVersion = '12.0.0'
    implementation "com.google.android.gms:play-services-places:$playServicesVersion"
    implementation "com.google.android.gms:play-services-maps:$playServicesVersion"
    

    也可以在您的项目级别 build.gradle 中使用,使用google-services 的以下版本。请参阅 OneSignal build.gradle google-services version

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

    如果您在 gradle 中进行上述两项更改,您将不会再遇到此错误。

    【讨论】:

    • 抱歉,很忙。我仍然无法正常工作。这是我的更改和错误。 gist.github.com/axilaris/cafe8f87ff17ba3a394834317a500d6c
    • 类似但略有不同,现在它的抱怨版本'12.0.0'
    • 你尝试运行项目了吗?
    • 你的意思是构建 apk,效果很好。它可以建造。顺便说一句,在不同的 Android Studio 上它可以工作。问题出在我的机器上(它曾经可以工作)
    • 好的,那没问题,如果你能运行项目,那就去吧!
    【解决方案5】:

    尝试使用以下配置强制使用您的 firebase 依赖项的版本

    android {
        configurations.all {
            resolutionStrategy.force 'com.google.firebase:firebase-core:16.0.1'
        }
    }
    

    【讨论】:

    • 我已经添加了 build.gradle 文件以防万一
    猜你喜欢
    • 2023-03-12
    • 2018-10-11
    • 2017-11-20
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 2015-05-13
    • 1970-01-01
    相关资源
    最近更新 更多