OneSignal导致Google Play服务版本改变

4

我正在尝试将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)。有没有什么办法可以解决这个问题?谢谢。
5个回答

3

尝试使用版本范围并将其替换为项目级别的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]'

此外,你在当前发布的gradle中遗漏了oneSignal ID(参见此处)。请添加进去。

同步完成后,请选择“清理并重新构建项目”选项。


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

0

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

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

嗨,道格,我之前使用的是com.google.gms:google-services:4.0.1,但我刚刚尝试了4.1.0,问题仍然存在。 - advice
Android Studio没有像通常那样提示更新版本。 - Martin Zeitler
我更新了我的问题,看起来似乎是添加OneSignal的问题。 - advice

0

您需要使用最新版本的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

试试这个。


0
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版本。 - advice
我按照你的建议尝试移除Firebase,但是我又遇到了另一个错误。"Android依赖'com.google.firebase:firebase-measurement-connector:15.0.0'被设置为compileOnly/provided,这是不被支持的。" - advice
不,我没有在任何地方使用 firebase-measurement - advice

-3
尝试添加Google仓库。
repositories {
    jcenter()
    google()
    ...
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接