【问题标题】:OneSignal causing Google Play Services version to changeOneSignal 导致 Google Play 服务版本发生变化
【发布时间】:2018-08-17 18:13:48
【问题描述】:

我正在尝试将 OneSignal 集成到我的项目中,但它会导致 Google Play 服务出错。

这是我的build.gradle

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'io.fabric'

dependencies {
    ...

    implementation "com.google.firebase:firebase-core:16.0.1"
    implementation "com.google.firebase:firebase-messaging:17.3.0"

    implementation "com.google.android.gms:play-services-plus:15.0.1"
    implementation "com.google.android.gms:play-services-auth:15.0.1"
    implementation "com.google.android.gms:play-services-location:15.0.1"
    implementation "com.google.android.gms:play-services-maps:15.0.1"
    implementation "com.google.android.gms:play-services-places:15.0.1"
    implementation "com.google.android.gms:play-services-wallet:15.0.1"

    ...
}

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

现在,我添加了 OneSignal。

buildscript {
    ...

    dependencies {
        ...

        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.8.1'

        ...
    }
}

这是我更新的build.gradle

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'io.fabric'

apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

dependencies {
    ...

    implementation "com.google.firebase:firebase-core:16.0.1"
    implementation "com.google.firebase:firebase-messaging:17.3.0"

    implementation "com.google.android.gms:play-services-plus:15.0.1"
    implementation "com.google.android.gms:play-services-auth:15.0.1"
    implementation "com.google.android.gms:play-services-location:15.0.1"
    implementation "com.google.android.gms:play-services-maps:15.0.1"
    implementation "com.google.android.gms:play-services-places:15.0.1"
    implementation "com.google.android.gms:play-services-wallet:15.0.1"

    ...

    implementation 'com.onesignal:OneSignal:3.9.1'

    ...
}

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

现在,与此同步会导致错误:

Failed to resolve: com.google.firebase:firebase-core:17.3.0
...

Failed to resolve: com.google.android.gms:play-services-plus:17.3.0
...

Failed to resolve: com.google.android.gms:play-services-auth:17.3.0
...

由于某种原因,添加 OneSignal 会导致 Google Play 服务升级到我的 firebase-messaging 版本(17.3.0)

有没有办法解决这个问题?谢谢。

【问题讨论】:

    标签: android firebase android-gradle-plugin google-play-services onesignal


    【解决方案1】:

    尝试使用版本范围并在项目级 gradle 中替换它

    dependencies {
            classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.11.0, 0.99.99]'
        }
    

    这在应用程序级别的 gradle 依赖项中

    implementation 'com.onesignal:OneSignal:[3.9.1, 3.99.99]'
    

    此外,您还错过了 oneSignal ID(来自您当前发布的 gradle 的想法) 也添加check here

    一旦你完成了 syn do clean and rebuild project 选项

    【讨论】:

    • 添加一个范围似乎已经解决了这个问题。你知道为什么使用 OneSignal 的范围更好吗?我在 build.gradle 中有我的 ID,出于安全原因,我只是在问题中省略了它。
    【解决方案2】:

    您还需要在顶级 build.gradle 中使用最新版本的 Google Play 服务插件:

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

    【讨论】:

    • 嗨,Doug,我之前用过com.google.gms:google-services:4.0.1,但我刚刚尝试过4.1.0,仍然是同样的问题。
    • Android Studio 没有像往常那样提示更新版本。
    • 我更新了我的问题,添加OneSignal似乎是个问题。
    【解决方案3】:

    One Signal 在内部处理 firebase 的依赖关系。为什么在应用程序 gradle 中使用 firebase 依赖项?删除它们并重建。

    删除它们

    implementation "com.google.firebase:firebase-core:16.0.1"
    implementation "com.google.firebase:firebase-messaging:17.3.0"
    

    【讨论】:

    • 我不知道它使用了 Firebase,这更有意义。但我不希望 OneSignal 控制我的 firebase 版本。
    • 我尝试按照您的建议删除 Firebase,但出现另一个错误。 “Android 依赖 'com.google.firebase:firebase-measurement-connector:15.0.0' 设置为 compileOnly/provided 不受支持”
    • 不,我不会在任何地方使用firebase-measurement
    【解决方案4】:

    您需要像这样使用最新版本的 firebase 依赖项,

     com.google.firebase:firebase-core:16.0.3
    com.google.firebase:firebase-messaging:17.1.0
    com.google.firebase:firebase-crash:16.0.1
    com.google.firebase:firebase-config:16.0.0
    com.google.firebase:firebase-perf:16.0.0
    

    试试这个。

    【讨论】:

      【解决方案5】:

      尝试添加谷歌仓库

      repositories {
          jcenter()
          google()
          ...
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-25
        • 2017-04-18
        相关资源
        最近更新 更多