Java.util.zip.ZipException con spongycastle LICENSE.class

Estoy tratando de incluir dos diferentes libs partido que ambos parecen incluir diferentes versiones del castillo esponjoso. Ambos se incluyen a través de instrucciones de compilación en mi build.gradle y uno está incluido como un AAR ( @aar ), mientras que el otro se incluye como normal.

Cuando intento compilar el debug buildType con estas 2 libs (la sincronización no muestra un problema). Veo lo siguiente,

Error: Error de ejecución para la tarea ': app: transformClassesWithJarMergingForDebug'.

Com.android.build.api.transform.TransformException: java.util.zip.ZipException: entrada duplicada: org / spongycastle / LICENSE.class

He estado buscando en torno a cómo resolver este problema, manteniendo las dos bibliotecas (ya que ambos son necesarios), pero han sido incapaces de encontrar una manera de hacer eso. Cualquier ayuda de un desarrollador de Android avanzado o un experto de gradle sería muy apreciada.

¡Gracias!

[Build.gradle]

 apply plugin: 'com.android.application' repositories { maven { url 'http://mobile-sdk.jumio.com' } } android { compileSdkVersion 23 buildToolsVersion "23.0.2" packagingOptions { pickFirst 'org/spongycastle/x509/CertPathReviewerMessages.properties' pickFirst 'org/spongycastle/x509/CertPathReviewerMessages_de.properties' } defaultConfig { applicationId "com.example.me.license" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0' compile "com.jumio.android:jumio-mobile-sdk:1.9.0@aar" compile 'com.worldpay:cse-android-sdk:1.0.2' } 

Esto es lo que sucede si los desarrolladores incluyen sus dependencias directamente. El malo de aquí es jumio-mobile-sdk . Este paquete incluye clases de com.madgag.spongycastle directamente, en lugar de especificarlas en un pom como debe hacerse.

Por suerte para usted, el otro paquete está configurado correctamente, por lo que debería ser capaz de excluir spongycastle de ella:

 compile ('com.worldpay:cse-android-sdk:1.0.2'){ exclude group: 'com.madgag.spongycastle' } 

Ahora imagine que ambos paquetes habrían incluido las clases directamente. El would've sido ninguna otra posibilidad entonces para corregir manualmente los archivos. Es por eso que lo odio si alguien hace lo que los chicos de jumio están haciendo. Si tiene los contactos, dígales que preparen su paquete para los sistemas de dependencia, por lo que este problema no surgirá de nuevo.

  • Gradle Build ejecutándose en Android Studio durante demasiado tiempo
  • Gradle Build falló - Java.exe ha finalizado con un valor de salida diferente de cero 2
  • Cómo resolver java.util.zip.ZipException entrada duplicada: com / google / gson / annotations / Expose.class?
  • Habilitar externalNativeBuild con división ABI
  • Qué se genera y las carpetas intermedias en el directorio de la estructura y porqué la carpeta de las salidas falta
  • ¿Hay una manera de saber si una cierta dependencia se compila en el archivo gradle devolviendo un boolean
  • Incrementar versión en la compilación del proyecto
  • Ejecute la tarea después de packageApplication cuando utilice el complemento androide gradle
  • ¿Es posible definir un recurso de array de cadenas Android en Gradle?
  • Android Studio Gradle Error - PreDexDebug
  • Cómo obtener sabor actual en gradle
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.