Gradle – biblioteca duplicados en dependencias

Tengo un proyecto de Android con gradle. El problema es: En la vista de project , veo algunas versiones de support-v4 bibliotecas de support-v4 , por ejemplo, support-v4-21.0.3 y support-v4-22.2.0 .

Pero en build.gradle no tengo support-v4 en absoluto.

Pero tengo ~ 10 otras dependencias en build.gradle . Por ejemplo appcompat-v7:22.2.0 . Puedo sugerir que appcompat-v7:22.2.0 en support-v4-22.2.0 en las dependencias de maven y lo tire implícitamente. Pero no tengo ideas que tire de support-v4-21.0.3 .

Por lo que sé todo esto libs se embaló en mi APK y aumentar el peso de APK.

Así que tengo las siguientes preguntas:

  1. ¿Cómo evitar los duplicados de la biblioteca?
  2. ¿Cómo ver las dependencias de maven en Android Studio?
  3. ¿Cómo detectar qué biblioteca necesita esta biblioteca? Por ejemplo, ¿qué biblioteca support-v4-21.0.3 en mi proyecto?

Para encontrar dependencias duplicadas o sus dependencias requeridas , puede visualizar las dependencias de la biblioteca en el árbol. Ejecute el comando gradle como se indica a continuación.

 gradle -q dependencies yourProject:dependencies --configuration compile 

Tenga en cuenta que, ejecute gradlew en Windows como se muestra a continuación.

 gradlew -q dependencies yourProject:dependencies --configuration compile 

El resultado del comando mostrará la jerarquía de árbol legible por humanos de todas las dependencias como se muestra a continuación.

 compile - Classpath for compiling the main sources. +--- org.androidannotations:androidannotations-api:3.2 +--- com.android.support:support-annotations:22.1.1 +--- com.squareup:otto:1.3.6 +--- in.srain.cube:grid-view-with-header-footer:1.0.10 +--- com.nostra13.universalimageloader:universal-image-loader:1.9.3 +--- com.github.chrisbanes.photoview:library:1.2.3 +--- org.simpleframework:simple-xml:2.7.1 +--- com.google.android.gms:play-services-base:6.5.+ -> 6.5.87 +--- project :yourProject | +--- com.loopj.android:android-async-http:1.4.6 | +--- org.apache.httpcomponents:httpmime:4.2.5 | | \--- org.apache.httpcomponents:httpcore:4.2.4 | \--- com.google.code.gson:gson:2.3.1 +--- project :facebook | \--- com.android.support:appcompat-v7:22.1.1 | \--- com.android.support:support-v4:22.1.1 | \--- com.android.support:support-annotations:22.1.1 -> 22.2.0 

Puedes ver las dependencias de overriden y decidir en cuáles deberían ser evitadas. En el ejemplo anterior, la última línea com.android.support:support-annotations presenta overriden de 22.1.1 a 22.2.0 internamente.

Para evitar duplicados , puede agregar cláusulas de exclude en cada archivo build.gradle proyecto.

 compile('com.github.chrisbanes.photoview:library:1.2.3') { exclude group: 'com.android.support' } compile('org.simpleframework:simple-xml:2.7.1') { exclude module: 'stax' exclude module: 'stax-api' exclude module: 'xpp3' } compile('com.google.android.gms:play-services-base:6.5.+') { exclude module: 'support-v4' } 

Para obtener más información, puede ver el tutorial en https://docs.gradle.org/current/userguide/userguide_single.html#sec:listing_dependencies

El siguiente plugin de estudio de Android le da detalles sobre las dependencias duplicadas y el recuento total de métodos de cada dependencia. Plugin de conteo de métodos de Android

Introduzca aquí la descripción de la imagen

  • MAVEN SDK no válido: Nivel de plataforma / API 16 no disponible
  • La importación de mi biblioteca de Android en una aplicación no se reconoce como una biblioteca
  • Invalid LOC header Error de compilación de Maven para Android support-v4
  • ¿Android con maven? Apk desconocido
  • ¿Cómo integrar pepino en el proyecto de prueba de android-maven?
  • Error de ejecución de la tarea ': bintrayUpload'.
  • El repositorio de maven de tejido genera gradaciones lentas
  • Android + Maven "No se encontró ningún identificador de recurso para el atributo 'installLocation' en el paquete 'android'"
  • Error en el archivo xml de maven pom: Creando un proyecto Android
  • Cómo eliminar correctamente una dependencia transitiva de un repo de maven con gradle
  • Android estudio maven apoyo eliminado?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.