En una compilación de Android Gradle, ¿cómo excluir las dependencias de un archivo jar incluido?
En mi proyecto de Android, uso una biblioteca que viene como un frasco. Lo incluyo en la sección de dependencias de la siguiente manera:
dependencies { ... compile files('libs/thethirdpartylibrary.jar') ... }
También quiero usar la biblioteca okhttp, que incluyo así:
- En la aplicación Unity android, cómo recibir contenido de un servicio de una biblioteca de android con referencia
- Java.lang.NoClassDefFoundError: com.facebook.android.R $ error de diseño al usar facebook jar sdk
- NoClassDefFoundError en un jar anidado (Android)
- Cómo mantener un archivo jar externo, pero todavía uso de sus clases en mi proyecto de Android?
- Crear un archivo aar en Android Studio
compile ('com.squareup.okhttp:okhttp:2.7.5')
(Esta versión particular de okhttp depende de okio 1.6.0.)
El problema es que la biblioteca de jar de terceros depende de okio v0.9.0 y lo que es peor, lo agrupa.
Como resultado, obtengo un error de conflicto dex en el momento de la compilación.
Fui capaz de resolver esto mediante la eliminación manual de okio del archivo jar y esto parece funcionar. Pero me pregunto si hay una manera de hacer esto en gradle.
Mi pregunta: ¿Puedo eliminar las dependencias transitorias (<- Espero estar usando esta palabra de la manera correcta) de un bote incluido durante el tiempo de construcción con gradle?
- Android: Proyecto agregado como biblioteca, obtención del archivo .jar en la ruta de compilación> Bibliotecas> Proyectos de biblioteca
- Archivos duplicados durante el empaque de un APK
- Creación de la biblioteca de soporte técnico de Android en JAR
- Acceso al tarro android en unit3d
- Cómo crear una biblioteca de vista personalizada de Android en Android Studio?
- Android Advertencia: JAR no existe o no contiene recursos
- ¿Cómo usar y empaquetar un archivo JAR con mi aplicación de Android?
- Errores de coincidencia de tar cuando agrega biblioteca en eclipse
Excluya el grupo en las dependencias utilizando las líneas siguientes.
1. configurations { all*.exclude group: 'com.android.support', module: 'support-v4' } 2.dependencies { compile 'com.android.support:support-v4:13.0.+' compile ("com.xxx:xxx-commons:1.+") { exclude group: 'junit', module: 'junit' } } 3. configurations { runtime.exclude group: "org.slf4j", module: "slf4j-log4j12" }
Prueba éste. Para más detalles
De acuerdo con esta discusión aquí https://groups.google.com/forum/#!topic/adt-dev/g1AiJM7PeVs , lo que quieres hacer no es posible.
La sintaxis sugerida en las otras respuestas es para las dependencias Maven "normales".
- ¿Cómo forzar a la aplicación a crear una miniatura (instantánea) para la lista de aplicaciones recientes?
- ¿Cómo puede configurar TI SensorTag para recopilar datos para su posterior recuperación?