由于OneSignal而无法解决依赖关系

时间:2017-08-14 11:22:48

标签: android gradle onesignal

我发现了以下问题: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' 

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

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

以及根目标文件中的此代码

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