azure-sdk-for-android
azure-sdk-for-android copied to clipboard
[BUG] Getting Duplicate Skype classes when including Calling and Chat in same project. Also, can't resolve 1.0.0-beta.8
Describe the bug
We are getting a build error when trying to include both communication calling and chat into the same project. We get the errors below. Also, I am not able to resolve azure-communication-calling:1.0.0-beta.8
even after adding the correct repositories based on the quickstart.
Exception or Stack Trace
Duplicate class com.skype.rt.Auf found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.Auf$AppState found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.ConnectivityChangeReceiver found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.FileStat found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.JniNetworkParams found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.JniNetworkParams$MccMnc found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.JniNetworkParams$NetworkCategory found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.JniNetworkParams$NetworkConnectionCost found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.JniNetworkParams$NetworkConnectionState found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.JniNetworkParams$NetworkConnectionSubType found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.JniNetworkParams$NetworkConnectionType found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.JniNetworkParams$NetworkRoamingState found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.KeyStoreWrap found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.LeakChecker found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.LogComponent found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.LogFactory found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.LogLevel found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.NetInterface found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.NetInterface$GenericNetworkCallback found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.NetInterface$GenericNetworkCallback$1 found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.NetInterface$GenericNetworkCallback$2 found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.NetInterface$NetworkCallback found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.NetInterface$TransportType found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.NetIntf found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.PowerReceiver found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.ProxyInfo found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.RootToolsHandler found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.RtContext found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.Spl found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.Spl$BytePii found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.Spl$CharPii found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.Spl$DoublePii found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.Spl$FloatPii found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.Spl$IntegerPii found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.Spl$LongPii found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.Spl$Pii found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.Spl$ShortPii found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.Spl$StringPii found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.SysInfo found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.WiFiNetworkState found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Duplicate class com.skype.rt.WiFiNetworkStatus found in modules jetified-azure-communication-calling-1.0.0-beta.7-runtime (com.azure.android:azure-communication-calling:1.0.0-beta.7) and jetified-client-android-0.0.1-beta.1-runtime (com.microsoft.trouter:client-android:0.0.1-beta.1)
Go to the documentation to learn how to Fix dependency resolution errors.
To Reproduce
- Create a new Android project, based on the Quickstart
- Follow steps to include the repositories
- Add the following dependencies:
implementation 'com.azure.android:azure-communication-calling:1.0.0-beta.8' implementation 'com.azure.android:azure-communication-common:1.0.0-beta.8' implementation 'com.azure.android:azure-communication-chat:1.0.0-beta.8'
Code Snippet Project Gradle
plugins {
id 'com.android.application'
}
android {
packagingOptions {
exclude 'META-INF/*'
pickFirst '**/*.so'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/license'
exclude 'META-INF/NOTICE'
exclude 'META-INF/notice'
exclude 'META-INF/ASL2.0'
exclude("META-INF/*.md")
exclude("META-INF/*.txt")
exclude("META-INF/*.kotlin_module")
}
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "com.example.chatquickstart"
minSdkVersion 22
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'com.azure.android:azure-communication-calling:1.0.0-beta.8'
implementation 'com.azure.android:azure-communication-common:1.0.0-beta.8'
implementation 'com.azure.android:azure-communication-chat:1.0.0-beta.8'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
Module Gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
maven {
url 'https://trouterpublicpackages.z13.web.core.windows.net'
}
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:4.1.3"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
maven {
url 'https://trouterpublicpackages.z13.web.core.windows.net'
}
mavenCentral()
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Expected behavior We expect the build to complete successfully
Screenshots
Setup (please complete the following information):
- OS: OSX 11.2.3
- IDE : Android Studio
- 1.0.0-beta.7 & 1.0.0-beta.8
Additional context
We have not released a 1.0.0.-beta.8
version for azure-communication-chat
and azure-communication-common
, although it seems Gradle is grabbing version 1.0.0-beta.7
anyways.
Additionally, azure-communication-calling
already depends on azure-communication-common
, so you do not need to import the latter explicitly.
I'll set up a small project and come back later today with some answers on the duplicate classes.
The reason this problem arises is because Calling and Chat use a different version of the library these classes are a part of, I brought this up in the team and we will work on a solution.
@vcolin7 thank you for the update. I had to use 1.0.0-beta.6 in order for calling and chat to work together. I am not sure if there are any major updates from beta.6 to beta.8 but would be great to be on the latest if there are additional fixes.
Do you mean you had to use version 1.0.0-beta.6
for Chat? Or was it Calling?
Had to use 1.0.0-beta.6
for chat in order for it to work with calling 1.0.0-beta.8
I see, in this case that is because 1.0.0-beta.6
does not have a dependency on the library I mentioned, which is used for getting real-time chat notifications. I will keep you posted on new developments here :)
Oh, that would be great to get real-time chat notifications out of the box. We had to bake a "little" work around leveraging SignalR and Azure Functions to consume the events.
@vcolin7 Any update on this? This has become a blocker for us. I notice that there were a few updates to the releases since this question was posted. I just tried it for the following combination:
implementation 'com.azure.android:azure-communication-calling:1.0.0-beta.10' implementation 'com.azure.android:azure-communication-chat:1.0.0-beta.8'
Hi @rashidbpg, unfortunately this has not yet been resolved but the team is actively working on it. There is however, a workaround that allows using both libraries to get rid of the conflicting classes on the ACS Chat side. What this means is that you will still not have access to real-time notifications out-of-the-box but since you previously said you achieved this functionality through other means this should be enough to unblock you for now.
Add the following to your gradle.build
file's dependencies section:
implementation 'com.azure.android:azure-communication-calling:1.0.0-beta.10'
implementation ('com.azure.android:azure-communication-chat:1.0.0-beta.8') {
exclude group: 'com.microsoft', module: 'trouter-client-android'
}
Let me know if you encounter any issues while doing this :)
Hi @vcolin7. I was just going down this route but couldn't figure out which module/group to exclude. Is it possible to do it the other where and exclude the conflicting classes from the calling sdk so that we can get the real time notification? Thank you for the update.
You could try but I think it will most likely break the basic ACS Calling functionality. The dependency is tied to some fundamental components, as opposed to ACS Chat where it's only used in a single package for getting real-time notifications.
This is still an issue in 2023. When making a new project with all the latest versions.
implementation 'com.jakewharton.threetenabp:threetenabp:1.3.1'
implementation 'com.azure.android:azure-communication-common:2.0.0-beta.2'
implementation 'com.azure.android:azure-communication-calling:2.6.0-beta.3'
implementation 'com.azure.android:azure-communication-chat:2.0.1'
Im getting this error:
Error stack
Task :app:checkDebugDuplicateClasses FAILED Execution failed for task ':app:checkDebugDuplicateClasses'. A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable Duplicate class com.skype.rt.Auf found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Auf$AppState found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.ConnectivityChangeReceiver found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.FileStat found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams$MccMnc found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams$NetworkCategory found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams$NetworkConnectionCost found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams$NetworkConnectionState found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams$NetworkConnectionSubType found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams$NetworkConnectionType found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams$NetworkRoamingState found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.KeyStoreWrap found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.LeakChecker found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.LogComponent found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.LogFactory found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.LogLevel found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.NetInterface found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.NetInterface$GenericNetworkCallback found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.NetInterface$GenericNetworkCallback$1 found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.NetInterface$GenericNetworkCallback$2 found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.NetInterface$NetworkCallback found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.NetInterface$TransportType found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.NetIntf found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.PowerReceiver found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.ProxyInfo found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.RootToolsHandler found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.RtContext found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$BytePii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$CharPii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$DoublePii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$FloatPii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$IntegerPii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$LongPii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$Pii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$ShortPii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$StringPii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.SysInfo found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.WiFiNetworkState found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.WiFiNetworkStatus found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1)
- Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
- Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:checkDebugDuplicateClasses'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:149) at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:147) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135) at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:338) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:325) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:318) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:304) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49) Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable at org.gradle.workers.internal.DefaultWorkerExecutor$WorkItemExecution.waitForCompletion(DefaultWorkerExecutor.java:283) at org.gradle.internal.work.DefaultAsyncWorkTracker.lambda$waitForItemsAndGatherFailures$2(DefaultAsyncWorkTracker.java:130) at org.gradle.internal.Factories$1.create(Factories.java:31) at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLocks(DefaultWorkerLeaseService.java:321) at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLocks(DefaultWorkerLeaseService.java:304) at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLock(DefaultWorkerLeaseService.java:309) at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:126) at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:92) at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForAll(DefaultAsyncWorkTracker.java:78) at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForCompletion(DefaultAsyncWorkTracker.java:66) at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:250) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68) at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:227) at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:210) at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:193) at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:166) at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:93) at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44) at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:57) at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:54) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:54) at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44) at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67) at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37) at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41) at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74) at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55) at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50) at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:28) at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:100) at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:72) at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:50) at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40) at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29) at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:166) at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:70) at org.gradle.internal.Either$Right.fold(Either.java:175) at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59) at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:68) at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:46) at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36) at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25) at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36) at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22) at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:91) at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:55) at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55) at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:37) at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65) at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36) at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37) at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27) at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:76) at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:37) at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:94) at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:49) at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:71) at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:45) at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNonEmptySources(SkipEmptyWorkStep.java:177) at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:81) at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:53) at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32) at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21) at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38) at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36) at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23) at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:75) at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:41) at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:32) at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:287) at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30) at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:21) at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37) at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27) at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:42) at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:31) at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:146) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135) at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:338) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:325) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:318) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:304) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49) Caused by: java.lang.RuntimeException: Duplicate class com.skype.rt.Auf found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Auf$AppState found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.ConnectivityChangeReceiver found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.FileStat found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams$MccMnc found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams$NetworkCategory found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams$NetworkConnectionCost found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams$NetworkConnectionState found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams$NetworkConnectionSubType found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams$NetworkConnectionType found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.JniNetworkParams$NetworkRoamingState found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.KeyStoreWrap found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.LeakChecker found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.LogComponent found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.LogFactory found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.LogLevel found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.NetInterface found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.NetInterface$GenericNetworkCallback found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.NetInterface$GenericNetworkCallback$1 found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.NetInterface$GenericNetworkCallback$2 found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.NetInterface$NetworkCallback found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.NetInterface$TransportType found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.NetIntf found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.PowerReceiver found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.ProxyInfo found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.RootToolsHandler found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.RtContext found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$BytePii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$CharPii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$DoublePii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$FloatPii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$IntegerPii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$LongPii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$Pii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$ShortPii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.Spl$StringPii found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.SysInfo found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.WiFiNetworkState found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1) Duplicate class com.skype.rt.WiFiNetworkStatus found in modules azure-communication-calling-2.6.0-beta.3-runtime (com.azure.android:azure-communication-calling:2.6.0-beta.3) and trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1)
Go to the documentation to learn how to Fix dependency resolution errors. at com.android.build.gradle.internal.tasks.CheckDuplicateClassesDelegate.run(CheckDuplicateClassesDelegate.kt:65) at com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable.execute(CheckDuplicateClassesDelegate.kt:91) at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63) at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66) at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62) at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100) at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41) at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59) at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:169) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:187) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:120) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:162) at org.gradle.internal.Factories$1.create(Factories.java:31) at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249) at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109) at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:114) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:157) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:126) ... 2 more
And when excluding the trouter from the chat event system stops functioning. So thats not a viable workaround.
If I recall correctly, the Trouter dependency in Chat is used for getting real-time notifications, so as you correctly point out, by excluding it you don't have access to said feature. That said, you can still make use of push notifications, so you still have a way of getting said notifications, albeit in a different fashion.
It's been a while since I laid my eyes on these libraries, so I'll defer to @jiminwen-msft from ACS Chat and @gaobob-msft from ACS Calling to see if there's currently a way of using both libraries without losing functionality on either side.
Thanks for answering, and confirming that the problem is a real one. Hopefully we can get a proper solution so we can implement both libraries in 1 app. Or atleast a workaround that does not mean losing functionality.
We already have chat build into our app and are heavily relying on the event system for now and don't have the push notifications implemented yet.
Is it the case that the com.skype.rt.*
are bundled in the Calling SDK? And that the calling SDK is not relying on the trouter package itself? If I print the dependencies with the gradle task I don't see a dependency on the trouter library from the calling SDK.
My guess is that if both the SDK's have the same trouter version dependency the bundler will auto-merge them.
(And is the Android Calling SDK closed source? Can't seem to find it in this repo)
@vcolin7 Any update on this?
Hey @stilbu, unfortunately, the teams involved are working on higher-priority items at the moment. I'll check back with them and let you know if there's any update from their side.
Hi @vcolin7 @jiminwen-msft @gaobob-msft is there a proper solution for this?
Hi @rashidbpg, we deeply appreciate your input into this project. Regrettably, this issue has remained inactive for over 2 years, leading us to the decision to close it. We've implemented this policy to maintain the relevance of our issue queue and facilitate easier navigation for new contributors. If you still believe this topic requires attention, please feel free to create a new issue, referencing this one. Thank you for your understanding and ongoing support.