解决 wire/okio 冲突

冲突说明

由于 mPaaS 使用 wire/okio 来进行 RPC 网络连接,而 okhttp 也需要引用 okio,所以当您在使用 mPaaS 的同时使用了 okhttp,那就可能出现 wire/okio 冲突。

解决方法

移除 mPaaS 的 wire/okio 依赖,并对 移动网关 功能进行回归测试以确保功能正常。

操作步骤

  1. 确认 mPaaS 所使用的 wire/okio 版本。

    'com.squareup.okio:okio:1.7.0@jar'
    'com.squareup.wire:wire-lite-runtime:1.5.3.4@jar'
  2. 获取 mPaaS 第三方 SDK 的 group:artifact 信息。

    'com.alipay.android.phone.thirdparty:wire-build'
  3. 移除 mPaaS 库。

    • AAR 方式如果您是采用原生 AAR 方式接入 mPaaS,gradle 的依赖传递会自动使用较高的版本,无需主动移除。通常来说 mPaaS 选择使用的版本具有较高的稳定性和安全性,建议使用 mPaaS 提供的版本。如果版本不一致,请在上线前对 mPaaS 功能进行测试以保证稳定性。

    • mPaaS Inside & 组件化(Portal & Bundle)

      mpaascomponents {
      excludeDependencies = [
        "com.alipay.android.phone.thirdparty:wire-build"
      ]
      }
  4. 加回 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'
阿里云首页 移动开发平台 mPaaS 相关技术圈