競合の説明
mPaaS は、リモートプロシージャコール (RPC) のネットワーク接続に wire/okio を使用します。okhttp ライブラリも okio を参照します。okhttp と mPaaS を一緒に使用すると、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 方式を使用して mPaaS を統合する場合、Gradle は自動的に依存関係をより高いバージョンに解決するため、手動で削除する必要はありません。mPaaS が提供するバージョンは、一般的に、より安定しており安全です。mPaaS バージョンを使用することを推奨します。バージョンに一貫性がない場合は、公開前に mPaaS の機能をテストして安定性を確保してください。
コンポーネントベース (Portal & Bundle) 方式を使用して mPaaS を統合する場合は、次のようにします。
mpaascomponents { excludeDependencies = [ "com.alipay.android.phone.thirdparty:wire-build" ] }
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' }コンポーネントベース (Portal & Bundle) プロジェクトの場合は、次のようにします。
mpaascomponents { excludeDependencies = [ "com.alipay.android.phone.thirdparty:wire-build" ] }
アプリケーション内の
com.squareup.wire.Messageから継承するすべての RPC protobuf クラスを、com.mpaas.thirdparty.squareup.wire.Messageから継承するように変更します。次のコンポーネント機能には回帰テストが必要です。