Android Studio ver el árbol de dependencias de la biblioteca de terceros

En el proceso de desarrollo de Android, introduciremos más o menos bibliotecas de terceros. Cuantas más bibliotecas introduzcamos, más fácil será generar conflictos de dependencia entre bibliotecas. Así que hoy aprenderemos sobre Android Studio y veremos la dependencia de la biblioteca de terceros. árbol.

Vamos a restaurar el problema que encontré:

Al conectarse al sistema de servicio al cliente de Renronglian anteriormente, se produjo un retroceso al ingresar a la página de servicio al cliente después de que se completó la integración.Revisemos el mensaje de error:

122.jpg

Echemos un vistazo al código de error:

java.lang.NoSuchMethodError: No virtual method into (Landroid/widget/ImageView;)Lcom/bumptech/glide/request/target/Target; in class Lcom/a/a/i; or its super classes (declaration of 'com.a.a.i' appears in/data/app/com.sami91sami.h5-1/base.apk)

Podemos saltar al lugar donde se reporta el error según el error:

133.jpg

El significado del error es: no

into(Landroid/widget/ImageView)

método, el código se puede compilar y pasar, lo que indica que se deben agregar dependencias al proyecto, entonces, ¿por qué se informa este error? Antes de agregar dependencias, Glide también se usa en el proyecto para cargar imágenes ¿Será que hay un conflicto entre Glide en el proyecto y Glide en Ronglian Demo?

Podemos hacer clic en el código fuente de acuerdo con el método into donde se informa el error:

144.jpg

Puede ver que la versión Glide utilizada por Ronglian Demo es 3.7.0.

Echemos un vistazo a la versión utilizada por Glide en el proyecto:

155.jpg

Puede ver que la versión de Glide utilizada en el proyecto es 4.5.0.

En este momento, pensé que existe una alta probabilidad de que haya un conflicto entre las versiones de Glide de los dos.

Efectivamente, después de cambiar la versión de Glide en Ronglian Demo a 4.5.0, luego de compilar y ejecutar e ingresar a la interfaz de servicio al cliente, no se reportó ningún error y se resolvió perfectamente.

Este es el problema de los conflictos de la biblioteca que encontré antes. Este problema tiene un mensaje de error que puede ubicarse como un problema de dependencia de la biblioteca Glide. Si otros mensajes de error no son tan obvios, será un dolor de cabeza.

Cuando me encontré con este problema en ese momento, no usé el método de ver el árbol de dependencias, sino que verifiqué directamente el código fuente, porque no sabía que podía hacer esto en ese momento. Afortunadamente, localicé rápidamente el problema. , por lo que cuando actualizamos la primera Cuando se introduce una biblioteca de terceros o una nueva biblioteca de terceros, hay un conflicto de dependencia entre la biblioteca y la biblioteca. Necesitamos conocer el árbol de dependencia de cada biblioteca de dependencia de terceros. Conocer el árbol de dependencias aclarará dónde está el conflicto.

Aquí hay algunas maneras de ver el árbol de dependencia:

Solución 1: Vista de la herramienta de tareas de Gradle

1. Haga clic en "Gradle" en la esquina superior derecha del panel de estudio de Android, como se muestra en la figura:

1639041944906-gzb.png

2. Busque la dependencia y haga doble clic en ella de acuerdo con el directorio que se muestra en la figura, y se generará e imprimirá en la consola Ejecutar, como se muestra en la figura:

222.png

3. Imprima como se muestra en la figura:

333.png

Solución 2: use el complemento Gradle View

1. Tecla de acceso directo Ctrl+Alt+s, abra la configuración y luego haga clic en el botón Complementos

444.png

2. Busque Gradle View, luego instálelo y reinicie Android Studio. Esta es una captura de pantalla después de haberlo instalado correctamente.

555.png

3. Haga clic en Ver -> Ventanas de herramientas -> Vista de Gradle en la barra de menú y espere un momento para verlo.

666.png

como muestra la imagen:

777.png

Solución 3: vista de consola de terminal

Use este comando en Android Studio Terminal en Windows:

gradlew :app:dependencies(“app”为module名称)

En MacOS use el siguiente comando:

./gradlew :app:dependencies(“app”为module名称)

Este comando imprimirá todos los pasos ejecutados por gradle, incluidos releaseUnitTestRuntimeClasspath, releaseUnitTestCompileClasspath, releaseRuntimeClasspath, releaseCompileClasspath, lintClassPath, debugUnitTestRuntimeClasspath, etc.

Luego, podemos configurar el parámetro de configuración para ver solo uno de los árboles de dependencia.

 ./gradlew :app:dependencies --configuration compile

Bajo el sistema de Windows, no hay necesidad de usar el comienzo de ./, solo use gradlew directamente.

Ejecute la tarea de dependencias en el módulo de la aplicación; además, configure las dependencias de compilación en el entorno de compilación.

888.png

Al observar el árbol de dependencias, podemos ver qué dependencias tienen conflictos, como el conflicto del paquete de soporte de un determinado marco, siempre que las dependencias en conflicto se encuentren en el archivo gradle del moudle, enciérrelas entre corchetes y agregue:

{
   exclude group:'com.android.support'
}

Esto eliminará el paquete de soporte del marco.

Supongo que te gusta

Origin blog.csdn.net/xiaowang_lj/article/details/131086163
Recomendado
Clasificación