全部產品
Search
文件中心

Mobile Platform as a Service:解決 android support 衝突

更新時間:Jul 13, 2024

組件化(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)'