解决 android support 冲突

组件化(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 版本。

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

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

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

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

      mpaascomponents {
      excludeDependencies = [
         "com.alipay.android.phone.thirdparty:androidsupport-build"
      ]
      }

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

冲突说明

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

解决方法

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

操作步骤

  1. 主动引入高版本 support-v4。

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

     implementation 'com.android.support:appcompat-v7:(您使用的版本,比如 28.0.0)'