最近接入冰鸟SDK上韩国安卓市场,对方要求接入推送功能,经过评估最终还是选择大厂腾讯的信鸽推送,根据官方SDK接入文档还是很快捷方便的,就是在配置海外通道的时候出现了些问题记录下。
gradle
:5.1.1 compileSdkVersion:28 targetSdkVersion:28 工程gradle配置如下:
a)在项目级的build.gradle文件中的dependencies节点中添加下面代码: classpath 'com.google.gms:google-services:4.2.0'
b)在应用级的build.gradle文件中添加依赖
implementation 'com.google.firebase:firebase-core:17.0.0'
implementation 'com.google.firebase:firebase-messaging:19.0.0'
//fcm
implementation 'com.tencent.xinge:fcm:4.3.2-release'
//在应用级的gradle文件的最后一行代码中新增并将google-services.json放进你应用model的根路径下
apply plugin: 'com.google.gms.google-services'
按照上面环境配置打包的时候编译出现如下错误:
Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.os.IResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.os.ResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.os.ResultReceiver$1 found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Go to the documentation to learn how to Fix dependency resolution errors.
意思是说v4包冲突了,网上查资料说是AndroidX版本引起的,解决方法一是迁移到 AndroidX,Android Studio
菜单栏 Refactor
-> Migrate to AndroidX,记得Do Refactor自动替换相关修改(手动修改可能会漏掉),就可以正常编译打包了
解决方法二是在Terminal中输入 gradlew :app:dependencies命令,可以查看第三方库的依赖树并找出引用了 androidx的库,修改对应的库版本就行了,最终修改
classpath 'com.google.gms:google-services:4.1.0' implementation 'com.google.firebase:firebase-core:16.0. 9 implementation 'com.google.firebase:firebase-messaging:18.0.0' 可以不用迁移到 AndroidX也能正常编译打包