競合の説明
mPaaS は RPC ネットワーク接続に wire/okio を使用しており、okhttp も okio を参照する必要があるため、mPaaS を okhttp と一緒に使用すると、wire/okio の競合が発生する可能性があります。
解決策
10.1.68 ベースライン
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 は
com.alipay.android.phone.thirdparty:wire-buildライブラリに wire と okio の両方の依存関係を書き込んでいるため、必要に応じて追加し直す必要があります。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'
10.2.3 ベースライン
mPaaS のバージョン依存関係を完全に削除し、ビジネス自体が必要とするバージョンを使用します。 wire/okio の競合を解決するには、次の操作手順を実行します。
mPaaS の wire を削除します。現在、mPaaS は今のところ wire に強く依存していません。
ネイティブ AAR プロジェクトでは、次の操作が必要です。
configurations { all*.exclude group: 'com.alipay.android.phone.thirdparty', module: 'wire-build' }mPaaS Inside & Component (Portal & Bundle) プロジェクトでは、次の操作を実行する必要があります。
mpaascomponents { excludeDependencies = [ "com.alipay.android.phone.thirdparty:wire-build" ] }
すべてのビジネスパーティ rpc の pb クラスは
com.squareup.wire.Messageを継承しており、com.mpaas.thirdparty.squareup.wire.Messageを継承するように変更する必要があります。次のコンポーネント機能を回帰テストする必要があります。