解决 wire/okio 冲突
冲突说明
由于 mPaaS 使用 wire/okio 来进行 RPC 网络连接,而 okhttp 也需要引用 okio,所以当您在使用 mPaaS 的同时使用了 okhttp,那就可能出现 wire/okio 冲突。
解决方法
移除 mPaaS 的 wire/okio 依赖,并对 移动网关 功能进行回归测试以确保功能正常。
操作步骤
确认 mPaaS 所使用的 wire/okio 版本。
'com.squareup.okio:okio:1.7.0@jar' 'com.squareup.wire:wire-lite-runtime:1.5.3.4@jar'
获取 mPaaS 第三方 SDK 的
group:artifact
信息。'com.alipay.android.phone.thirdparty:wire-build'
移除 mPaaS 库。
AAR 方式如果您是采用原生 AAR 方式接入 mPaaS,gradle 的依赖传递会自动使用较高的版本,无需主动移除。通常来说 mPaaS 选择使用的版本具有较高的稳定性和安全性,建议使用 mPaaS 提供的版本。如果版本不一致,请在上线前对 mPaaS 功能进行测试以保证稳定性。
mPaaS Inside & 组件化(Portal & Bundle)
mpaascomponents { excludeDependencies = [ "com.alipay.android.phone.thirdparty:wire-build" ] }
加回 wire 或 okio(使用公网的 wire/okio。原生 AAR 方式接入方式无需关注)。因为 mPaaS 把 wire 和 okio 的依赖,都写在
com.alipay.android.phone.thirdparty:wire-build
库内,所以您需要根据实际情况,选择性加回。如果只是 okio 冲突,但不存在 wire 冲突,需要加回 wire。
implementation 'com.squareup.wire:wire-lite-runtime:1.5.3.4@jar'
如果只是 wire 冲突,但不存在 okio 冲突,需要加回 okio。
'com.squareup.okio:okio:1.7.0@jar'