Estoy intentando crear una aplicación en Android Studio. Después de agregar la biblioteca Eclipse Paho como una dependencia de gradle (¿o es Maven? Soy nuevo en el ecosistema de Android), recibí el siguiente error:
Program type already present: android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat
Message{kind=ERROR, text=Program type already present: android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat, sources=[Unknown source file], tool name=Optional.of(D8)}
Revisé muchas preguntas diferentes de StackOverflow relacionadas con este error, pero las respuestas son todas específicas para ciertas bibliotecas. Estoy buscando no solo una solución al error, sino también una comprensión de lo que significa el error . De esa manera, será más fácil para las personas encontrar soluciones para sus casos específicos. Hasta ahora, ninguna respuesta ha proporcionado eso.
De otras respuestas de StackOverflow, he deducido que tiene algo que ver con mi archivo gradle. Entonces, aquí está app / build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "---REDACTED FOR PRIVACY---"
minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support:support-media-compat:27.1.0'
implementation 'com.android.support:support-v13:27.1.0'
implementation 'com.google.android.gms:play-services-maps:12.0.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2'
implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.0.2'
}
repositories {
maven { url 'https://repo.eclipse.org/content/repositories/paho-releases/' }
}
fuente
Para mí, solo limpiar el proyecto resolvió el problema
Usando Terminal :
Usando Android Studio :
fuente
Build > Clean Project
.File > Invalidate Caches / Restart > Invalidate and restart
puede solucionar el problemaDel documento oficial
Si una clase aparece más de una vez en la ruta de clases en tiempo de ejecución, obtiene un error similar al siguiente:
Program type already present com.example.MyClass
Este error suele ocurrir debido a una de las siguientes circunstancias:
Una dependencia binaria incluye una biblioteca que su aplicación también incluye como dependencia directa.
Por ejemplo, su aplicación declara una dependencia directa de la Biblioteca A y la Biblioteca B, pero la Biblioteca A ya incluye la Biblioteca B en su binario. Para resolver este problema, elimine la Biblioteca B como una dependencia directa.
Tu aplicación tiene una dependencia binaria local y una dependencia binaria remota en la misma biblioteca.
Para resolver este problema, elimine una de las dependencias binarias. (Vea si se agrega la misma biblioteca como dependencia de jar y gradle)
fuente
También me pasó a mí, pero en mi caso, trato de incluir diferentes dependencias que tienen la misma clase usando
debugApi
&Api
entonces Android Studio marcado como clase duplicada, así que resolví el problema usandodebugApi
&releaseApi
para incluir diferentes dependencias basadas en la variante de compilación.fuente
Agregue la biblioteca de soporte al archivo Gradle de nivel de aplicación
fuente
En mi caso, significa que tengo 2 archivos * .jar o 2 bibliotecas en algún lugar del código fuente. Por ejemplo: tengo 2
youtube.jar
enapp/libary
ymodule/libary
elimino el redundante una vez y estará bienfuente
Espero que ayude a alguien, un proyecto Build> Clean funcionó para mí.
fuente
Problema para este problema: si usa la biblioteca como módulo y la misma biblioteca como dependencia en otra biblioteca.
Ejemplo: LibraryA importada como módulo y la misma LibraryA agregada como dependencia en cualquier otro módulo de biblioteca.
¿Cómo arreglar este problema?
Solución 1 -> si desea mantener ambos -> Simplemente refactorice el nombre del paquete del módulo LibraryA
Solución 2 -> elimine la dependencia LibraryA y use el módulo
fuente