-
Notifications
You must be signed in to change notification settings - Fork 596
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Firebase In-App Messaging leaks Guava to the compile classpath. #154
Comments
Hi @R4md4c , thanks for filing this bug. As far as I can tell this is the behavior of the Android Gradle Plugin which is not consistent with Gradle's java/java-library plugins. With the java plugins the compileClasspath indeed contains only the immediate dependencies of a module and transitive dependencies are excluded. That said, I don't think we can do anything about it in firebase-inappmessaging to avoid this, and as you mentioned exclusions won't help you as you need guava at runtime(grpc needs it to function), but you don't want it on compile classpath. I'd suggest you file the bug upstream to the Android Gradle Plugin. |
Closing this since this is not something we have control over, feel free to reopen if you think otherwise |
@R4md4c
I've tried exclude |
When using
implement
with the In-App Messaging library, Guava v20.0 is leaked to the APK through theio.grpc
dependency group. This causes other annotation processors like Dagger 2 to generate code that uses Guava Collections likeImmutableMap
since it detected it, instead of using their internal collections.Steps to reproduce:
Just include as a dependency
implementation com.google.firebase:firebase-inappmessaging-display:17.0.4
Relevant Code:
The relevant output from
./gradlew :app:dependencies
under theflavorReleaseCompileClasspath
I tried putting
exclude module: 'guava'
then it crashes at the start up withThe text was updated successfully, but these errors were encountered: