Android Kotlin support with Java SDK

Hello

I'm trying to use Java SDK in an Android Studio Kotlin project, but I get duplicated classes when I run it.

These are the errors:

Execution failed for task ':app:checkDebugDuplicateClasses'

A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
Duplicate class javax.activation.ActivationDataFlavor found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.CommandInfo found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.CommandInfo$Beans found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.CommandInfo$Beans$1 found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.CommandMap found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.CommandObject found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.DataContentHandler found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.DataContentHandlerFactory found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.DataHandler found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.DataHandler$1 found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.DataHandlerDataSource found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.DataSource found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.DataSourceDataContentHandler found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.FileDataSource found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.FileTypeMap found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.MailcapCommandMap found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.MailcapCommandMap$1 found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.MimeType found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.MimeTypeParameterList found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.MimeTypeParseException found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.MimetypesFileTypeMap found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.MimetypesFileTypeMap$1 found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.ObjectDataContentHandler found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.SecuritySupport found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.SecuritySupport$1 found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.SecuritySupport$2 found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.SecuritySupport$3 found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.SecuritySupport$4 found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)
Duplicate class javax.activation.SecuritySupport$5 found in the following modules: jetified-jakarta.activation-1.2 (com.sun.activation:jakarta.activation:1.2.2), jetified-jakarta.activation-api-1.2 (jakarta.activation:jakarta.activation-api:1.2.2) and jetified-javax.activation-api-1.2.0 (javax.activation:javax.activation-api:1.2.0)

(...)

build.gradle.tks**

plugins {
alias(libs.plugins.androidApplication)
alias(libs.plugins.jetbrainsKotlinAndroid)
}

android {
namespace = "com.example.gbank"
compileSdk = 34

defaultConfig {
    applicationId = "com.example.gbank"
    minSdk = 24
    targetSdk = 34
    versionCode = 1
    versionName = "1.0"

    testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    vectorDrawables {
        useSupportLibrary = true
    }
}

buildTypes {
    release {
        isMinifyEnabled = false
        proguardFiles(
            getDefaultProguardFile("proguard-android-optimize.txt"),
            "proguard-rules.pro"
        )
    }
}
compileOptions {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
    jvmTarget = "1.8"
}
buildFeatures {
    compose = true
    viewBinding = true
}
composeOptions {
    kotlinCompilerExtensionVersion = "1.5.1"
}
packaging {

    resources {
        excludes += "/META-INF/{AL2.0,LGPL2.1}"
        excludes += "META-INF/LICENSE.md"
        excludes += "META-INF/NOTICE.md"
        excludes += "META-INF/DEPENDENCIES"
        excludes += "javax/xml/bind/Messages.properties"
        excludes += "javax/xml/bind"
        excludes += "javax/xml/bind/util/Messages.properties"
        excludes += "javax/xml/bind/helpers/Messages.properties"
        excludes += "/META-INF/DEPENDENCIES"
        excludes += "META-INF/DEPENDENCIES"
        excludes += "META-INF/LICENSE"
        excludes += "META-INF/LICENSE.txt"
        excludes += "META-INF/license.txt"
        excludes += "META-INF/NOTICE.txt"
        excludes += "META-INF/notice.txt"
        excludes += "META-INF/ASL2.0"
        excludes += "META-INF/.kotlin_module"
        excludes += "META-INF/LICENSE.md"
        excludes += "META-INF/NOTICE.md"
        excludes += "META-INF/io.netty.versions.properties"
        excludes += "META-INF/"

    }
}
viewBinding{
    enable=true
}

}

dependencies {
implementation("aws.sdk.kotlin:s3:1.0.0")
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.material)
implementation(libs.androidx.activity)
implementation(libs.androidx.constraintlayout)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.material3)
implementation(libs.androidx.navigation.fragment.ktx)
implementation(libs.androidx.navigation.ui.ktx)
implementation(libs.play.services.location)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.ui.test.junit4)
debugImplementation(libs.androidx.ui.tooling)
debugImplementation(libs.androidx.ui.test.manifest)
implementation ("com.genesys.cloud:core:1.9.0")
implementation ("com.genesys.cloud:chatintegration:1.9.0")
implementation ("com.genesys.cloud:ui:1.9.0")
implementation("com.google.android.gms:play-services-location:21.2.0")
implementation ("com.mypurecloud:platform-client-v2:206.0.0")

**********settings.gradle

pluginManagement {
repositories {
google {
content {
includeGroupByRegex("com\.android.")
includeGroupByRegex("com\.google.")
includeGroupByRegex("androidx.")
}
}
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven {url =uri("https://genesysdx.jfrog.io/artifactory/genesys-cloud-android.prod/") }

}

}

rootProject.name = "GBank"
include(":app")


I added the excludes += instrucctions because I had some errors like this: DuplicateRelativeFileException: 2 files found with path 'XXXXXXXXXXXXX' from inputs:

According to Genesys documentation it's supported the sdk within Android, there is nothing about Kotlin, but since kotlin full support java modules, I was wondering why I can't compile the app.

Thanks.

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.