diff --git a/mobile/plugins/native-call/android/build.gradle b/mobile/plugins/native-call/android/build.gradle index ef14a65..360fa50 100644 --- a/mobile/plugins/native-call/android/build.gradle +++ b/mobile/plugins/native-call/android/build.gradle @@ -88,6 +88,10 @@ dependencies { implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion" // Native call media (background audio) + audio-device routing (speaker/bluetooth/earpiece). implementation "io.livekit:livekit-android:$livekitVersion" - // AudioDevice types used by LiveKit's AudioSwitchHandler; declared so they're on our compile classpath. - implementation "com.twilio:audioswitch:$audioswitchVersion" + // AudioDevice types (com.twilio.audioswitch.AudioDevice) used by our CallMedia.kt. LiveKit already BUNDLES a + // fork (com.github.davidliu:audioswitch) that ships these exact classes at RUNTIME — so declaring our own as + // `implementation` put both forks on the runtime classpath and failed checkDebugDuplicateClasses. Use + // `compileOnly`: twilio:audioswitch gives us the types at compile time, while runtime uses only LiveKit's + // bundled fork (binary-identical package/classes) → no duplicate. + compileOnly "com.twilio:audioswitch:$audioswitchVersion" } diff --git a/mobile/plugins/native-call/android/src/main/java/com/bizgaze/connect/nativecall/CallMedia.kt b/mobile/plugins/native-call/android/src/main/java/com/bizgaze/connect/nativecall/CallMedia.kt index 5757715..3e87fbe 100644 --- a/mobile/plugins/native-call/android/src/main/java/com/bizgaze/connect/nativecall/CallMedia.kt +++ b/mobile/plugins/native-call/android/src/main/java/com/bizgaze/connect/nativecall/CallMedia.kt @@ -5,7 +5,7 @@ import android.util.Log import com.twilio.audioswitch.AudioDevice import io.livekit.android.LiveKit import io.livekit.android.LiveKitOverrides -import io.livekit.android.audio.AudioOptions +import io.livekit.android.AudioOptions import io.livekit.android.audio.AudioSwitchHandler import io.livekit.android.room.Room import kotlinx.coroutines.CoroutineScope