全部产品

解决 android support 冲突

更新时间:2020-06-22 15:18:45

组件化(Portal&Bundle)和 mPaaS Inside 接入方式下的 android support 冲突

冲突说明

mPaaS 内置了基于 23.2.1 版本的 support 库,同时添加了 Fragment 切面逻辑进行自动化页面埋点。如果在使用 mPaaS 的同时也添加了官方版本的 android support 库的话,会出现 android support 冲突。

解决方法

移除 androidsupport-build,直接替换为官方版本。如果还需要使用 mPaaS 提供的 Fragment 自动化日志功能,您需要手动添加 监控逻辑

注意:原生 AAR 方式并没有内置 support 库,因此您无需做任何处理。但如果您需要使用 mPaaS 提供的 Fragment 自动化日志功能,请手动添加 监控逻辑

操作步骤

  1. 确认当前 mPaaS 所使用的 android support 版本。

    1. 'com.android.support:support-v4'
    2. 'com.android.support:appcompat-v7'
  2. 获取mPaaS 第三方 sdk 的 group:artifact 信息。

    1. 'com.alipay.android.phone.thirdparty:androidsupport-build'
    2. 'com.alipay.android.phone.thirdparty:androidsupportrecyclerview-build'
  3. 移除 mPaaS 库。

    • AAR 方式
      如果您是原生 AAR 方式接入 mPaaS,无需主动移除。

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

      1. mpaascomponents {
      2. excludeDependencies = [
      3. "com.alipay.android.phone.thirdparty:androidsupport-build"
      4. ]
      5. }

原生 AAR 接入方式下的 android support 冲突

冲突说明

原生 AAR 接入方式使用了基于 23.4.0 版本的 support-v4 库。但从 24.2.0 起,Google 更改了代码组织方式,不再以全家桶的方式提供 support-v4 库的所有模块,而 appcompat-v7 继承了这种引入依赖的方案,更多详情请参见 支持库软件包。因此,当您的工程使用了 appcompat-v7 包时,会引入 AAR 依赖冲突。

解决方法

手动引入高版本 support-v4,同时引入您需要的 appcompat-v7。

操作步骤

  1. 主动引入高版本 support-v4。
    1. implementation 'com.android.support:support-v4:(您使用的版本,比如28.0.0)'
  2. 引入您需要的 appcompat-v7。
    1. implementation 'com.android.support:appcompat-v7:(您使用的版本,比如28.0.0)'