firebase / firebase-android-sdk

Firebase Android SDK
https://firebase.google.com
Apache License 2.0
2.28k stars 580 forks source link

Duplicate class ListenableFuture after update #1320

Closed PromanSEW closed 4 years ago

PromanSEW commented 4 years ago

[READ] Step 1: Are you in the right place?

Issues filed here should be about bugs in the code in this repository. If you have a general question, need help debugging, or fall into some other category use one of these other channels:

[REQUIRED] Step 2: Describe your environment

[REQUIRED] Step 3: Describe the problem

Steps to reproduce:

After update Firebase BoM to 25.0.0 build failed:

Duplicate class com.google.common.util.concurrent.ListenableFuture found in modules jetified-guava-26.0-android.jar (com.google.guava:guava:26.0-android) and jetified-listenablefuture-1.0.jar (com.google.guava:listenablefuture:1.0)
schmidt-sebastian commented 4 years ago

@PromanSEW Sorry to hear about this.

If you are able, can you share either your Gradle dependency file or a small reproduction? Thank you!

PromanSEW commented 4 years ago
dependencies {
    implementation platform('com.google.firebase:firebase-bom:25.0.0')
    implementation "com.crashlytics.sdk.android:crashlytics"
    implementation "com.google.android.gms:play-services-location:17.0.0"
    implementation "com.google.firebase:firebase-ads"
    implementation "com.google.firebase:firebase-analytics"
    implementation "com.google.firebase:firebase-firestore"
}
PromanSEW commented 4 years ago

I see that empty dependency listenablefuture-9999.0-empty-to-avoid-conflict-with-guava was changed to listenablefuture-1.0

schmidt-sebastian commented 4 years ago

@PromanSEW I am not abe tor reproduce your issue. Can you provide your output of ./gradlew :app:dependencies (or similar). With your dependencies, my output looks as such:

https://gist.github.com/schmidt-sebastian/dacd4767445728968fc2262d0e4904c9

As you can see, :app still depends on listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.

PromanSEW commented 4 years ago

@schmidt-sebastian I found the root problem: androidx.browser:browser:1.2.0 https://drive.google.com/open?id=1ri8SuunE5ziy2RUpHiFtIEpml4bEcEMs https://drive.google.com/open?id=1JApB6xO-wPPhDcCbX6RWEUBsjtjNbWGo What should I do? Force exclude listenable-future from androidx.browser:browser?

schmidt-sebastian commented 4 years ago

Thanks for the update! For now, I would suggest to force exclude the conflicting dependency. I will try to reach out internally to see if they can drop the dependency.

Thank you!

drusak commented 4 years ago

Have same issue when updating version of firestore from 21.4.0 to 21.4.1

schmidt-sebastian commented 4 years ago

@drusak Can you please share your dependency tree?

drusak commented 4 years ago

@schmidt-sebastian sure

productionReleaseRuntimeClasspath - Runtime classpath of compilation 'productionRelease' (target  (androidJvm)).
+--- androidx.databinding:databinding-common:3.6.1
+--- androidx.databinding:databinding-runtime:3.6.1
|    +--- androidx.databinding:viewbinding:3.6.1
|    |    \--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0
|    |    +--- androidx.lifecycle:lifecycle-common:2.2.0
|    |    |    \--- androidx.annotation:annotation:1.1.0
|    |    +--- androidx.arch.core:core-common:2.1.0
|    |    |    \--- androidx.annotation:annotation:1.1.0
|    |    \--- androidx.annotation:annotation:1.1.0
|    +--- androidx.collection:collection:1.0.0 -> 1.1.0
|    |    \--- androidx.annotation:annotation:1.1.0
|    \--- androidx.databinding:databinding-common:3.6.1
+--- androidx.databinding:databinding-adapters:3.6.1
|    +--- androidx.databinding:databinding-common:3.6.1
|    \--- androidx.databinding:databinding-runtime:3.6.1 (*)
+--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.61
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.61
|         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61
|         \--- org.jetbrains:annotations:13.0 -> 16.0.1
+--- androidx.multidex:multidex:2.0.1
+--- com.google.android.material:material:1.1.0
|    +--- androidx.annotation:annotation:1.0.1 -> 1.1.0
|    +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0-alpha02 (*)
|    +--- androidx.cardview:cardview:1.0.0
|    |    \--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0
|    |    +--- androidx.annotation:annotation:1.1.0
|    |    +--- androidx.core:core:1.1.0 -> 1.3.0-alpha01 (*)
|    |    +--- androidx.customview:customview:1.0.0 (*)
|    |    \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    +--- androidx.core:core:1.1.0 -> 1.3.0-alpha01 (*)
|    +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*)
|    +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*)
|    +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0
|    |    +--- androidx.annotation:annotation:1.1.0
|    |    +--- androidx.core:core:1.1.0 -> 1.3.0-alpha01 (*)
|    |    +--- androidx.customview:customview:1.0.0 (*)
|    |    \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    +--- androidx.transition:transition:1.2.0
|    |    +--- androidx.annotation:annotation:1.1.0
|    |    +--- androidx.core:core:1.0.1 -> 1.3.0-alpha01 (*)
|    |    \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    +--- androidx.vectordrawable:vectordrawable:1.1.0 (*)
|    \--- androidx.viewpager2:viewpager2:1.0.0
|         +--- androidx.annotation:annotation:1.1.0
|         +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*)
|         +--- androidx.recyclerview:recyclerview:1.1.0 (*)
|         +--- androidx.core:core:1.1.0 -> 1.3.0-alpha01 (*)
|         \--- androidx.collection:collection:1.1.0 (*)
+--- androidx.browser:browser:1.2.0
|    +--- androidx.core:core:1.1.0 -> 1.3.0-alpha01 (*)
|    +--- androidx.annotation:annotation:1.1.0
|    +--- com.google.guava:listenablefuture:1.0
|    +--- androidx.collection:collection:1.1.0 (*)
|    +--- androidx.concurrent:concurrent-futures:1.0.0
|    |    +--- com.google.guava:listenablefuture:1.0
|    |    \--- androidx.annotation:annotation:1.1.0
|    \--- androidx.interpolator:interpolator:1.0.0 (*)
+--- androidx.recyclerview:recyclerview:1.1.0 (*)
+--- androidx.cardview:cardview:1.0.0 (*)
+--- androidx.lifecycle:lifecycle-extensions:2.2.0
|    +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*)
|    +--- androidx.arch.core:core-common:2.1.0 (*)
|    +--- androidx.arch.core:core-runtime:2.1.0 (*)
|    +--- androidx.fragment:fragment:1.2.0 (*)
|    +--- androidx.lifecycle:lifecycle-common:2.2.0 (*)
|    +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*)
|    +--- androidx.lifecycle:lifecycle-process:2.2.0
|    |    \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*)
|    +--- androidx.lifecycle:lifecycle-service:2.2.0
|    |    \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*)
|    \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*)
+--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50 -> 1.3.61 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.0 -> 1.3.3
|    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.61 (*)
|    |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3
|    |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.61 (*)
|    |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61
|    \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*)
+--- androidx.lifecycle:lifecycle-livedata-ktx:2.2.0
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50 -> 1.3.61 (*)
|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.0 -> 1.3.3 (*)
|    +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*)
|    \--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.2.0
|         +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50 -> 1.3.61 (*)
|         \--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*)
+--- androidx.lifecycle:lifecycle-common-java8:2.2.0
|    +--- androidx.lifecycle:lifecycle-common:2.2.0 (*)
|    \--- androidx.annotation:annotation:1.1.0
+--- androidx.paging:paging-runtime:2.1.1
|    +--- androidx.paging:paging-common:2.1.1
|    |    +--- androidx.annotation:annotation:1.1.0-alpha02 -> 1.1.0
|    |    \--- androidx.arch.core:core-common:2.0.0 -> 2.1.0 (*)
|    +--- androidx.arch.core:core-runtime:2.0.1-alpha01 -> 2.1.0 (*)
|    +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*)
|    +--- androidx.lifecycle:lifecycle-livedata:2.1.0-alpha03 -> 2.2.0 (*)
|    \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*)
+--- com.crashlytics.sdk.android:crashlytics:2.10.1
|    +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0
|    |    +--- io.fabric.sdk.android:fabric:1.4.8
|    |    \--- com.crashlytics.sdk.android:answers:1.4.7
|    |         \--- io.fabric.sdk.android:fabric:1.4.8
|    +--- com.crashlytics.sdk.android:beta:1.2.10
|    |    \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8
|    +--- io.fabric.sdk.android:fabric:1.4.8
|    \--- com.crashlytics.sdk.android:answers:1.4.7 (*)
+--- com.crashlytics.sdk.android:crashlytics-ndk:2.1.1
|    +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 (*)
|    \--- io.fabric.sdk.android:fabric:1.4.8
+--- com.google.firebase:firebase-messaging:20.1.0
|    +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    +--- androidx.core:core:1.0.0 -> 1.3.0-alpha01 (*)
|    +--- com.google.android.datatransport:transport-api:2.2.0
|    +--- com.google.android.datatransport:transport-backend-cct:2.2.0
|    |    +--- androidx.annotation:annotation:1.1.0
|    |    +--- com.google.android.datatransport:transport-api:2.2.0
|    |    +--- com.google.android.datatransport:transport-runtime:2.2.0
|    |    |    +--- androidx.annotation:annotation:1.1.0
|    |    |    +--- com.google.android.datatransport:transport-api:2.2.0
|    |    |    \--- com.google.dagger:dagger:2.24
|    |    |         \--- javax.inject:javax.inject:1
|    |    \--- com.google.firebase:firebase-encoders-json:16.0.0
|    |         \--- androidx.annotation:annotation:1.1.0
|    +--- com.google.android.datatransport:transport-runtime:2.2.0 (*)
|    +--- com.google.android.gms:play-services-basement:17.0.0
|    |    +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    |    +--- androidx.core:core:1.0.0 -> 1.3.0-alpha01 (*)
|    |    \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*)
|    +--- com.google.android.gms:play-services-tasks:17.0.0
|    |    \--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    +--- com.google.firebase:firebase-common:19.3.0
|    |    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    +--- com.google.android.gms:play-services-tasks:17.0.0 (*)
|    |    +--- com.google.auto.value:auto-value-annotations:1.6.5
|    |    \--- com.google.firebase:firebase-components:16.0.0
|    |         \--- androidx.annotation:annotation:1.1.0
|    +--- com.google.firebase:firebase-components:16.0.0 (*)
|    +--- com.google.firebase:firebase-datatransport:17.0.3
|    |    +--- androidx.annotation:annotation:1.1.0
|    |    +--- com.google.android.datatransport:transport-api:2.1.0 -> 2.2.0
|    |    +--- com.google.android.datatransport:transport-backend-cct:2.1.0 -> 2.2.0 (*)
|    |    +--- com.google.android.datatransport:transport-runtime:2.1.0 -> 2.2.0 (*)
|    |    \--- com.google.firebase:firebase-common:19.3.0 (*)
|    +--- com.google.firebase:firebase-encoders-json:16.0.0 (*)
|    +--- com.google.firebase:firebase-iid:[20.0.2] -> 20.0.2
|    |    +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    |    +--- androidx.core:core:1.0.0 -> 1.3.0-alpha01 (*)
|    |    +--- androidx.legacy:legacy-support-core-utils:1.0.0
|    |    |    +--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    |    |    +--- androidx.core:core:1.0.0 -> 1.3.0-alpha01 (*)
|    |    |    +--- androidx.documentfile:documentfile:1.0.0
|    |    |    |    \--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    |    |    +--- androidx.loader:loader:1.0.0 (*)
|    |    |    +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0
|    |    |    |    \--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    |    |    \--- androidx.print:print:1.0.0
|    |    |         \--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    |    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    +--- com.google.android.gms:play-services-stats:17.0.0
|    |    |    +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
|    |    |    \--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    +--- com.google.android.gms:play-services-tasks:17.0.0 (*)
|    |    +--- com.google.firebase:firebase-common:19.3.0 (*)
|    |    +--- com.google.firebase:firebase-components:16.0.0 (*)
|    |    \--- com.google.firebase:firebase-iid-interop:17.0.0
|    |         +--- com.google.android.gms:play-services-base:17.0.0 -> 17.1.0
|    |         |    +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    |         |    +--- androidx.core:core:1.0.0 -> 1.3.0-alpha01 (*)
|    |         |    +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*)
|    |         |    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |         |    \--- com.google.android.gms:play-services-tasks:17.0.0 (*)
|    |         \--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    \--- com.google.firebase:firebase-measurement-connector:18.0.0
|         \--- com.google.android.gms:play-services-basement:17.0.0 (*)
+--- com.google.firebase:firebase-config:19.1.1
|    +--- com.google.firebase:firebase-abt:19.0.1
|    |    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    +--- com.google.firebase:firebase-common:19.3.0 (*)
|    |    +--- com.google.firebase:firebase-components:16.0.0 (*)
|    |    +--- com.google.firebase:firebase-measurement-connector:18.0.0 (*)
|    |    \--- com.google.protobuf:protobuf-lite:3.0.1
|    +--- com.google.firebase:firebase-common:19.3.0 (*)
|    +--- com.google.firebase:firebase-components:16.0.0 (*)
|    +--- com.google.firebase:firebase-iid:20.0.1 -> 20.0.2 (*)
|    +--- com.google.firebase:firebase-measurement-connector:18.0.0 (*)
|    \--- com.google.protobuf:protobuf-lite:3.0.1
+--- com.google.firebase:firebase-analytics:17.2.2
|    +--- com.google.android.gms:play-services-measurement:17.2.2
|    |    +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    |    +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
|    |    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    +--- com.google.android.gms:play-services-measurement-base:[17.2.2] -> 17.2.2
|    |    |    \--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    +--- com.google.android.gms:play-services-measurement-impl:[17.2.2] -> 17.2.2
|    |    |    +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    |    |    +--- androidx.core:core:1.0.0 -> 1.3.0-alpha01 (*)
|    |    |    +--- com.google.android.gms:play-services-ads-identifier:17.0.0
|    |    |    |    \--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    |    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    |    +--- com.google.android.gms:play-services-measurement-base:[17.2.2] -> 17.2.2 (*)
|    |    |    \--- com.google.android.gms:play-services-stats:17.0.0 (*)
|    |    \--- com.google.android.gms:play-services-stats:17.0.0 (*)
|    +--- com.google.android.gms:play-services-measurement-api:17.2.2
|    |    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    +--- com.google.android.gms:play-services-measurement-base:[17.2.2] -> 17.2.2 (*)
|    |    +--- com.google.android.gms:play-services-measurement-impl:[17.2.2] -> 17.2.2 (*)
|    |    +--- com.google.android.gms:play-services-measurement-sdk-api:[17.2.2] -> 17.2.2
|    |    |    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    |    \--- com.google.android.gms:play-services-measurement-base:[17.2.2] -> 17.2.2 (*)
|    |    +--- com.google.android.gms:play-services-tasks:17.0.0 (*)
|    |    +--- com.google.firebase:firebase-common:19.3.0 (*)
|    |    +--- com.google.firebase:firebase-components:16.0.0 (*)
|    |    +--- com.google.firebase:firebase-iid:20.0.2 (*)
|    |    \--- com.google.firebase:firebase-measurement-connector:18.0.0 (*)
|    \--- com.google.android.gms:play-services-measurement-sdk:17.2.2
|         +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|         +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|         +--- com.google.android.gms:play-services-measurement-base:[17.2.2] -> 17.2.2 (*)
|         \--- com.google.android.gms:play-services-measurement-impl:[17.2.2] -> 17.2.2 (*)
+--- com.google.firebase:firebase-perf:19.0.5
|    +--- androidx.core:core:1.0.0 -> 1.3.0-alpha01 (*)
|    +--- com.google.android.gms:play-services-base:17.0.0 -> 17.1.0 (*)
|    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    +--- com.google.android.gms:play-services-clearcut:17.0.0
|    |    +--- androidx.core:core:1.0.0 -> 1.3.0-alpha01 (*)
|    |    +--- com.google.android.gms:play-services-base:17.0.0 -> 17.1.0 (*)
|    |    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    +--- com.google.android.gms:play-services-phenotype:17.0.0
|    |    |    +--- androidx.core:core:1.0.0 -> 1.3.0-alpha01 (*)
|    |    |    +--- com.google.android.gms:play-services-base:17.0.0 -> 17.1.0 (*)
|    |    |    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    |    \--- com.google.android.gms:play-services-tasks:17.0.0 (*)
|    |    \--- com.google.android.gms:play-services-tasks:17.0.0 (*)
|    +--- com.google.android.gms:play-services-phenotype:17.0.0 (*)
|    +--- com.google.android.gms:play-services-tasks:17.0.0 (*)
|    +--- com.google.firebase:firebase-common:19.3.0 (*)
|    +--- com.google.firebase:firebase-components:16.0.0 (*)
|    +--- com.google.firebase:firebase-config:19.0.4 -> 19.1.1 (*)
|    +--- com.google.firebase:firebase-iid:20.0.1 -> 20.0.2 (*)
|    \--- com.squareup.okhttp3:okhttp:3.0.0 -> 3.10.0
|         \--- com.squareup.okio:okio:1.14.0
+--- com.google.firebase:firebase-firestore:21.4.1
|    +--- androidx.annotation:annotation:1.1.0
|    +--- com.google.android.gms:play-services-base:17.0.0 -> 17.1.0 (*)
|    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    +--- com.google.android.gms:play-services-tasks:17.0.0 (*)
|    +--- com.google.firebase:firebase-auth-interop:18.0.0 -> 19.0.0
|    |    +--- com.google.android.gms:play-services-base:17.0.0 -> 17.1.0 (*)
|    |    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    +--- com.google.android.gms:play-services-tasks:17.0.0 (*)
|    |    \--- com.google.firebase:firebase-common:19.0.0 -> 19.3.0 (*)
|    +--- com.google.firebase:firebase-common:19.3.0 (*)
|    +--- com.google.firebase:firebase-components:16.0.0 (*)
|    +--- com.google.firebase:firebase-database-collection:17.0.1
|    |    \--- com.google.android.gms:play-services-base:17.0.0 -> 17.1.0 (*)
|    +--- com.google.firebase:protolite-well-known-types:17.0.0
|    |    \--- com.google.protobuf:protobuf-lite:3.0.1
|    +--- com.squareup.okhttp:okhttp:2.7.5
|    |    \--- com.squareup.okio:okio:1.6.0 -> 1.14.0
|    +--- io.grpc:grpc-android:1.21.0
|    |    \--- io.grpc:grpc-core:[1.21.0] -> 1.21.0
|    |         +--- io.opencensus:opencensus-api:0.21.0
|    |         +--- io.grpc:grpc-api:[1.21.0] -> 1.21.0
|    |         |    +--- io.grpc:grpc-context:1.21.0
|    |         |    +--- com.google.errorprone:error_prone_annotations:2.3.2
|    |         |    +--- com.google.code.findbugs:jsr305:3.0.2
|    |         |    +--- org.codehaus.mojo:animal-sniffer-annotations:1.17
|    |         |    \--- com.google.guava:guava:26.0-android
|    |         |         +--- org.checkerframework:checker-compat-qual:2.5.2
|    |         |         \--- com.google.j2objc:j2objc-annotations:1.1
|    |         +--- com.google.code.gson:gson:2.7
|    |         +--- com.google.android:annotations:4.1.1.4
|    |         \--- io.opencensus:opencensus-contrib-grpc-metrics:0.21.0
|    |              \--- io.opencensus:opencensus-api:0.21.0
|    +--- io.grpc:grpc-okhttp:1.21.0
|    |    +--- io.grpc:grpc-core:[1.21.0] -> 1.21.0 (*)
|    |    +--- com.squareup.okhttp:okhttp:2.5.0 -> 2.7.5 (*)
|    |    \--- com.squareup.okio:okio:1.13.0 -> 1.14.0
|    +--- io.grpc:grpc-protobuf-lite:1.21.0
|    |    +--- io.grpc:grpc-api:1.21.0 (*)
|    |    +--- com.google.protobuf:protobuf-lite:3.0.1
|    |    \--- com.google.guava:guava:26.0-android (*)
|    \--- io.grpc:grpc-stub:1.21.0
|         \--- io.grpc:grpc-api:1.21.0 (*)
+--- com.google.firebase:firebase-database:19.2.1
|    +--- androidx.annotation:annotation:1.1.0
|    +--- com.google.android.gms:play-services-base:17.0.0 -> 17.1.0 (*)
|    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    +--- com.google.android.gms:play-services-tasks:17.0.0 (*)
|    +--- com.google.firebase:firebase-auth-interop:18.0.0 -> 19.0.0 (*)
|    +--- com.google.firebase:firebase-common:19.3.0 (*)
|    +--- com.google.firebase:firebase-components:16.0.0 (*)
|    \--- com.google.firebase:firebase-database-collection:17.0.0 -> 17.0.1 (*)
+--- com.google.firebase:firebase-auth:19.2.0
|    +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*)
|    +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 (*)
|    +--- com.google.android.gms:play-services-base:17.1.0 (*)
|    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    +--- com.google.android.gms:play-services-tasks:17.0.0 (*)
|    +--- com.google.firebase:firebase-auth-interop:19.0.0 (*)
|    +--- com.google.firebase:firebase-common:19.3.0 (*)
|    \--- com.google.firebase:firebase-components:16.0.0 (*)
+--- com.google.android.gms:play-services-base:17.1.0 (*)
+--- com.google.android.gms:play-services-auth:17.0.0
|    +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*)
|    +--- androidx.loader:loader:1.0.0 (*)
|    +--- com.google.android.gms:play-services-auth-api-phone:17.0.0
|    |    +--- com.google.android.gms:play-services-base:17.0.0 -> 17.1.0 (*)
|    |    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    \--- com.google.android.gms:play-services-tasks:17.0.0 (*)
|    +--- com.google.android.gms:play-services-auth-base:17.0.0
|    |    +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
|    |    +--- com.google.android.gms:play-services-base:17.0.0 -> 17.1.0 (*)
|    |    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    \--- com.google.android.gms:play-services-tasks:17.0.0 (*)
|    +--- com.google.android.gms:play-services-base:17.0.0 -> 17.1.0 (*)
|    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    \--- com.google.android.gms:play-services-tasks:17.0.0 (*)
+--- com.google.android.gms:play-services-analytics:17.0.0
|    +--- com.google.android.gms:play-services-analytics-impl:[17.0.0] -> 17.0.0
|    |    +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*)
|    |    +--- com.google.android.gms:play-services-base:17.0.0 -> 17.1.0 (*)
|    |    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    |    \--- com.google.android.gms:play-services-stats:17.0.0 (*)
|    +--- com.google.android.gms:play-services-base:17.0.0 -> 17.1.0 (*)
|    +--- com.google.android.gms:play-services-basement:17.0.0 (*)
|    +--- com.google.android.gms:play-services-stats:17.0.0 (*)
|    \--- com.google.android.gms:play-services-tagmanager-v4-impl:[17.0.0] -> 17.0.0
|         +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*)
|         +--- com.google.android.gms:play-services-analytics-impl:[17.0.0] -> 17.0.0 (*)
|         +--- com.google.android.gms:play-services-base:17.0.0 -> 17.1.0 (*)
|         \--- com.google.android.gms:play-services-basement:17.0.0 (*)
+--- com.squareup.okhttp3:okhttp:3.10.0 (*)
+--- com.squareup.retrofit:retrofit:1.9.0
|    \--- com.google.code.gson:gson:2.3.1 -> 2.7
+--- com.jakewharton.retrofit:retrofit1-okhttp3-client:1.1.0
|    +--- com.squareup.retrofit:retrofit:1.9.0 (*)
|    \--- com.squareup.okhttp3:okhttp:3.2.0 -> 3.10.0 (*)
+--- com.jakewharton.timber:timber:4.7.1
|    \--- org.jetbrains:annotations:16.0.1
+--- com.squareup.picasso:picasso:2.5.2
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.3.3
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.61 (*)
|    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3 (*)
+--- com.android.installreferrer:installreferrer:1.1.1
\--- androidx.multidex:multidex:2.0.0 -> 2.0.1
schmidt-sebastian commented 4 years ago

@drusak While this is not the cleanest suggestion, can you let me know if excluding com.google.guava:listenablefuture from androidx.browser:browser helps you?

Please take a look at the first answer here for a guide: https://discuss.gradle.org/t/how-do-i-exclude-specific-transitive-dependencies-of-something-i-depend-on/17991

PromanSEW commented 4 years ago

@schmidt-sebastian wll this issue be fixed by Firebase itself without excluding dependency?

drusak commented 4 years ago

@schmidt-sebastian Unfortunately it didn't help Just added exclude option:

implementation("androidx.browser:browser:$browser_version") {
        exclude group: 'com.google.guava', module: 'listenablefuture'
}

But still have same error in logs while building APK

PromanSEW commented 4 years ago

@drusak use this line instead:

implementation "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava"
schmidt-sebastian commented 4 years ago

The next release of Firestore will drop all direct dependencies on Guava, but our network stack continues to rely on Guava for some of its functionality. We are evaluating moving the network stack off of Guava too, but this will be very long process. Until that happens, issues like the one here will happen from time to time. Note that these conflicts are not Firebase specific, but can happen with any number of packages.