web-dev-qa-db-ja.com

New Place SDK googleへの移行中にjar(ListenableFuture.class)を複製する

これを使用して、オートコンプリートウィジェットのPlaces SDK Googleを新しいウィジェットに移行しようとしています 移行ガイド 。しかし、リリースまたはデバッグAPKを生成しようとすると、エラーが発生し始めます

Duplicate jar entry [com/google/common/util/concurrent/ListenableFuture.class]

いくつかのスタックオーバーフローの質問とその他の参考資料を読んだところ、重複したグアバ(ListenableFuture)が原因であることがわかりました。アプリレベルの依存関係を以下に示します。

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation androidx.appcompat:appcompat:1.1.0-alpha01
implementation 'androidx.mediarouter:mediarouter:1.1.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
implementation 'com.google.Android.gms:play-services-location:16.0.0'
implementation 'com.google.Android.libraries.places:places:1.0.0'

implementation 'com.google.Android.gms:play-services-maps:16.0.0'
implementation 'com.google.Android.gms:play-services-safetynet:16.0.0'
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.google.firebase:firebase-messaging:17.3.4'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.google.Android.material:material:1.1.0-alpha03'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.intuit.sdp:sdp-Android:1.0.3'
implementation 'com.roughike:bottom-bar:2.3.1'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.razorpay:checkout:1.4.7'
implementation 'me.relex:circleindicator:1.2.2@aar'
implementation 'com.firebase:firebase-jobdispatcher:0.8.5'
implementation 'com.crashlytics.sdk.Android:crashlytics:2.9.8'
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.multidex:multidex-instrumentation:2.0.0'

}

これまでに行ったこと-1. SDKの場所からのリスニング可能な未来の除外

implementation ('com.google.Android.libraries.places:places:1.0.0'){
    exclude group: 'com.google.guava', module: 'listenablefuture'
}

結果は同じでした。それでもlistenablefutureのjarエントリの重複エラー

  1. 場所SDKからグアバ全体を除外

    実装( 'com.google.Android.libraries.places:places:1.0.0'){exclude group: 'com.google.guava'}

結果はエラーではありませんでした。しかし、apkがインストールされていて、オートコンプリートウィジェットを含むアクティビティを実行すると、以下のエラーが発生してアプリがクラッシュします。

Fatal Exception: Java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/common/base/Preconditions;
   at com.google.Android.libraries.places.api.Places.initialize(Unknown Source:5)
   at com.google.Android.libraries.places.api.Places.initialize(Unknown Source:1)
   at com.proyujan.proyujan.MapLeadActivity.onCreate(Unknown Source:26)
   at Android.app.Activity.performCreate(Activity.Java:7372)
   at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1218)
   at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:3147)
   at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:3302)
   at Android.app.ActivityThread.-wrap12(Unknown Source)
   at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1891)
   at Android.os.Handler.dispatchMessage(Handler.Java:108)
   at Android.os.Looper.loop(Looper.Java:166)
   at Android.app.ActivityThread.main(ActivityThread.Java:7425)
   at Java.lang.reflect.Method.invoke(Method.Java)
   at com.Android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.Java:245)
   at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:921)
  1. Appcompat依存関係にlistenablefutureモジュールが見つかりました。手順1と2もappcompatで行いましたが、結果は同じでした。

助けてください。これを解決する方法。

8
Bharat Kumar

解決策は私にとってはうまくいきませんでしたが、2.0.0に更新した後、修正された後、バージョン1.0.0がエラーを出していました。

implementation 'com.google.Android.libraries.places:places:2.0.0'
0
Ridha Rezzag