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,
- Dependencias por defecto de Gradle al crear un nuevo proyecto
- build.gradle en el proyecto vs. build.gradle en la aplicación
- Gradle - Inesperada excepción de nivel superior - De la nada
- Actualización de dependencias de Gradle
- Estudio Android con gradle experimental 0.2.0
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' }
- ¿Cómo hacer que la generación de la versión de Grade no funcione con Lint Option StopShip?
- Problema de actualización en la versión de herramientas de compilación de gradle de 1.2.3 a 1.3.1
- Configurar Gradle para ejecutar un paso de compilación personalizado antes de iniciar la compilación
- Gradle dependencias diferencia entre compilar, apk proyecto, proyecto de compilación, proporcionado, proyecto de implementación
- A condición de que la dependencia de grado sea AAR no JAR
- Java.lang.NoClassDefFoundError: Resolución fallida de: Landroid / support / v4 / util / ArrayMap;
- ¿Puedo obtener propiedades definidas en "gradle.properties" en JAVA STATEMENT?
- Mientras agrega nuevas dependencias en el archivo android build.gradle. Siempre muestra un error
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.
- Softkeyboard oculta botón debajo de varias líneas EditText?
- No vuelva a ejecutar la llamada de Retrofit si todavía está en curso con RxJava 2