Hello i ran into an issue in my code, i was using Exploayer for a long time but i installed a new dependency to do something completely different(a .jar) and now every time i try to visualize something with exoplayer my app crashes with this error:
java.lang.NoSuchMethodError: No virtual method buildOrThrow()Lcom/google/common/collect/ImmutableMap; in class Lcom/google/common/collect/ImmutableMap$Builder; or its super classes (declaration of 'com.google.common.collect.ImmutableMap$Builder' appears in /data/app/com.ingroupe.ees.integration-9SAl9pnbNhLv_5pZxswx_Q==/base.apk!classes17.dex)
here is my gradle
@file:Suppress("UnstableApiUsage", "DSL_SCOPE_VIOLATION")
plugins {
alias(androidlibs.plugins.application)
alias(androidlibs.plugins.kotlin.android)
kotlin("kapt")
alias(androidlibs.plugins.hilt)
}
android {
compileSdk = 34
val getGitVersionData: () -> Map<String, Any> by extra
val gitVersionData = getGitVersionData()
val computedVersionCode =
gitVersionData["Major"] as Int * 1000000 + gitVersionData["Minor"] as Int * 1000 + gitVersionData["Patch"] as Int
defaultConfig {
applicationId = "com.ingroupe.ees"
minSdk = 28
targetSdk = 33
versionName = "1.14.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
testOptions {
unitTests.isReturnDefaultValues = true
}
kotlinOptions {
jvmTarget = "1.8"
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.1.1"
}
packagingOptions {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
excludes += "/META-INF/gradle/incremental.annotation.processors"
// pickFirsts.add("**/libibscanultimatejni.so")
//pickFirsts.add("**/libusb.so")
//pickFirsts.add("**/*.so")
}
}
signingConfigs {
create("integration") {
keyAlias = "integration"
keyPassword = "INGroupeEES"
storePassword = "INGroupeEES"
storeFile = file("integration.jks")
}
}
flavorDimensions += listOf("environment", "device")
productFlavors {
create("production") {
dimension = "environment"
}
create("integration") {
dimension = "environment"
applicationIdSuffix = ".integration"
var appCenterKey = "no key"
try {
appCenterKey = System.getenv("APPCENTERKEY")
} catch (_: Throwable) {
}
buildConfigField("String", "appCenterKey", "\"$appCenterKey\"")
signingConfig = signingConfigs.getByName("integration")
}
create("physicalDevice") {
dimension = "device"
}
create("mockedDevice") {
dimension = "device"
}
}
buildTypes {
debug {
signingConfig = signingConfigs.getByName("integration")
}
release {
isDebuggable = false
isTestCoverageEnabled = true
isMinifyEnabled = false
isShrinkResources = false
setProguardFiles(
listOf(
getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
)
)
}
}
kapt {
correctErrorTypes = true
}
hilt {
enableAggregatingTask = false
}
}
configurations {
implementation {
exclude(group = "org.jetbrains", module = "annotations")
}
}
configurations.all {
exclude(group = "com.google.guava", module = "guava")
}
configurations.all {
exclude(group = "com.google.code.findbugs", module = "jsr305")
}
configurations.all {
exclude(group = "xml-apis", module = "xml-apis")
}
configurations.all {
exclude(group = "org.slf4j", module = "slf4j-api")
}
configurations.all {
exclude(group = "xpp3", module = "xpp3")
}
dependencies {
implementation(fileTree("libs"))
/// Hilt
implementation(androidlibs.hilt.android)
implementation("androidx.media3:media3-exoplayer:1.2.1")
kapt(androidlibs.hilt.compiler)
androidTestImplementation(androidlibs.hilt.android.testing)
androidTestImplementation(androidlibs.hilt.compiler)
testImplementation(androidlibs.hilt.android.testing)
testImplementation(androidlibs.hilt.compiler)
// Kotlinx Coroutines
implementation(androidlibs.kotlinx.coroutines.android)
testImplementation(androidlibs.kotlinx.coroutines.test)
/// AndroidX
implementation(androidlibs.androidx.core.ktx)
implementation(androidlibs.androidx.compose.ui)
implementation(androidlibs.androidx.compose.constraintlayout)
implementation(androidlibs.androidx.hilt.navigation.compose)
implementation(androidlibs.androidx.compose.material)
implementation(androidlibs.androidx.compose.material.icons.extended)
implementation(androidlibs.androidx.compose.ui.tooling.preview)
implementation(androidlibs.androidx.compose.activity)
implementation(androidlibs.androidx.navigation.compose)
implementation(androidlibs.androidx.lifecycle.runtime.ktx)
implementation(androidlibs.androidx.camera.camera2)
implementation(androidlibs.androidx.camera.view)
implementation(androidlibs.androidx.camera.lifecycle)
implementation(androidlibs.gson)
//Lottie
implementation(androidlibs.airbnb.android.lottie.compose)
implementation(androidlibs.exoplayer)
//Accompanist
implementation(androidlibs.accompanist.permissions)
// Timber
implementation(androidlibs.timber)
//implementation(androidlibs.coppernic.ibscanultimate)
implementation(androidlibs.ibscanultimate)
implementation(androidlibs.ibscancommon)
implementation(androidlibs.cpcCore)
implementation(androidlibs.cpcUtilsLib)
implementation(androidlibs.retrofit)
implementation(androidlibs.converter.gson)
implementation(androidlibs.converter.simplexml)
//Accompanist
implementation(androidlibs.accompanist.permissions)
// App Center
"integrationImplementation"(androidlibs.appcenter.distribute)
"integrationImplementation"(androidlibs.appcenter.crashes)
testImplementation(androidlibs.junit)
androidTestImplementation(androidlibs.android.test.ext.junit)
androidTestImplementation(androidlibs.androidx.test.espresso.core)
androidTestImplementation(androidlibs.androidx.compose.ui.test.junit4)
debugImplementation(androidlibs.androidx.compose.ui.test.manifest)
testImplementation(androidlibs.mockito.kotlin)
debugImplementation(androidlibs.androidx.compose.ui.tooling)
implementation("com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava")
implementation(group = "xerces", name = "xercesImpl", version = "2.11.0")
}
After further investigation i discovered that the configurations.all { exclude(group = "com.google.guava", module = "guava") } was the issue because in the AudioCapabalities.java the buildOrThrow method didn't existed

Can someone explain me how I exclude guava only for my .jar dependency or how I can autorize it for Exoplayer only?