【问题标题】:Failed resolving dependencies due to OneSignal由于 OneSignal 无法解决依赖关系
【发布时间】:2018-01-11 14:59:16
【问题描述】:

我发现了以下问题:Failed to resolve: com.android.support:customtabs:[26.0.0,26.1.0] 人们将其标记为重复(这是错误的!请参阅下一句)或写了一些关于 Maven 或清理项目等的内容。

两天来我遇到完全相同的问题(未能解决 customtabs 和 support-v4),并且我没有更改我之前工作的项目中的任何内容。所以我开始寻找可能的解决方案,我发现了问题——它是 OneSignal 依赖项——当我删除它时,一切正常。但是我已经在我的应用程序中实现了通知 - 现在不知道该怎么做。我试图编译最新的(在 OneSignal 页面上提到)

compile 'com.onesignal:OneSignal:[3.6.0,3.99.99)'

但结果是一样的。有人可以帮忙吗?

更新:

这个问题很容易重现 - 请创建一个简单的项目并添加下面提到的这个依赖项(来自 OneSignal 官方网站https://documentation.onesignal.com/v3.0/docs/android-sdk-setup):

 compile 'com.onesignal:OneSignal:[3.6.0, 3.99.99]'

更新 2:

这些是我的依赖项:

compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.firebase:firebase-auth:10.0.1'
compile 'com.google.firebase:firebase-database:10.0.1'
compile 'com.firebaseui:firebase-ui-database:1.1.0'
compile 'com.android.support:design:25.3.1'
compile 'com.onesignal:OneSignal:[3.6.0, 3.99.99]'

添加

maven {
        url "https://maven.google.com"
    }

到 build.gradle 解决了 OneSignal 的问题,但现在我遇到了 Firebase 的问题:

java.lang.NoSuchMethodError: No static method zzdD(Ljava/lang/String;)Z in class Lcom/google/android/gms/common/util/zzv; or its super classes (declaration of 'com.google.android.gms.common.util.zzv' 

【问题讨论】:

  • 发布 gradle 文件根目录和应用程序

标签: android gradle onesignal


【解决方案1】:

发生错误是因为您的依赖项中有一些冲突的库。

正如documentation 中所说:

自动依赖
OneSignal 自动添加以下依赖项;

  • com.google.android.gms - 版本 11
  • com.android.support - 版本 26

如果您遇到以下问题,请确保您的项目与这些版本匹配 版本不匹配错误。

有关详细信息,请参阅All gms/firesbase libraries must use the exact same version specification 部分。

因此,您需要在项目中删除或使用相同的依赖项,如下所示:

compile 'com.android.support:appcompat-v7:26.0.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.firebase:firebase-auth:11.0.+'
compile 'com.google.firebase:firebase-database:11.0.+'
compile 'com.firebaseui:firebase-ui-database:1.1.0'
compile 'com.android.support:design:26.0.+'
compile 'com.onesignal:OneSignal:[3.6.0, 3.99.99]'

【讨论】:

  • 他已经在使用相同版本的 firebase 依赖项
  • 我可以将它与另一个版本的支持库一起添加吗,例如 26.0.0-alpha1 ?
  • 我想你可以,但你需要排除支持库。像这样compile ('com.onesignal:OneSignal:[3.6.0, 3.99.99]') { exclude group: 'com.android.support', module: 'appcompat-v7' }
【解决方案2】:

从依赖项中删除“f”。另外,使用 [ 括号代替 )。这是一个错字。

    dependencies {
    compile 'com.onesignal:OneSignal:[3.6.0, 3.99.99]'
}

这个代码在你的根 gradle 文件中

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

【讨论】:

  • 这是问题中不小心写的,感谢您的发布,现在我更正了。项目中的依赖关系是正确的,所以你的回答没有帮助。
  • 查看其错字 compile 'com.onesignal:OneSignal:[3.6.0,3.99.99f99)'
  • 使用 [ ] ,而不是 [ )
  • ?我说这只是偶然地将字符放在问题中!项目中的依赖和你写的完全一样
  • 不,这与它无关。见官方文档 - 必须有 [ 开头和 ) 结尾
猜你喜欢
  • 2016-02-16
  • 2017-02-20
  • 2022-06-17
  • 1970-01-01
  • 2018-05-25
相关资源
最近更新 更多