support library last android gradle android-support-library android-gradle

library - Varios archivos dex definen Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat



com.android.support:design 26 (25)

Comencé a recibir este error al actualizar a ButterKnife 8.5.1. Ninguna de las otras respuestas aquí funcionó para mí.

Utilicé las gradle -q :app:dependencies para ver el árbol, y luego miré los archivos jar hasta que encontré el conflicto. El conflicto fue que la dependencia de butterknife en com.android.support:support-compat:25.1.0 contiene una versión de la clase de accesibilidad, y com.android.support:support-v4:23.1.1 también contiene la clase.

Lo resolví cambiando mi dependencia de esto:

compile ''com.jakewharton:butterknife:8.5.1''

a esto:

compile(''com.jakewharton:butterknife:8.5.1'') { exclude module: ''support-compat'' }

No parece afectar la operación de ButterKnife hasta ahora.

Edición: hay una mejor solución, que fue actualizar mis bibliotecas de soporte de Android para que coincidan con las de ButterKnife:

compile(''com.android.support:appcompat-v7:25.2.0'') compile(''com.android.support:design:25.2.0'') compile ''com.jakewharton:butterknife:8.5.1''

Si ejecuto gradle assembleDebug desde la línea de comandos, de repente gradle assembleDebug este error:

UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dx.util.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:592) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:550) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:531) at com.android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168) at com.android.dx.merge.DexMerger.merge(DexMerger.java:186) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:300) at com.android.dx.command.dexer.Main.run(Main.java:232) at com.android.dx.command.dexer.Main.main(Main.java:174) at com.android.dx.command.Main.main(Main.java:91)

Si grep para v4 veo dos archivos dentro de mi carpeta de compilación.

Binary file build/pre-dexed/debug/support-v4-19.0.0-2ba5fdd60a6c3836b3104a863fe42897da1fa9d1.jar matches Binary file build/pre-dexed/debug/support-v4-r7-227d905d79b23b20866531d4f700446c040a2ccb.jar matches

Mi archivo de gradle incluye solo esta biblioteca de soporte:

compile ''com.android.support:support-v13:19.0.0''

Estoy sorprendido de cómo la biblioteca r7 se incluye de alguna manera. He ejecutado gradle clean y siempre aparece allí cuando vuelvo a ejecutar assembleDebug.

Si grep para r7 dentro del directorio de compilación, lo veo dentro del archivo:

Binary file build/exploded-bundles/ComGoogleAndroidGmsPlayServices4030.aar/classes.jar matches

Si no incluyo v13, entonces otras cosas no se compilan.

¿Pero no v13 incluye v4 biblioteca de soporte?

¿Es esto una incompatibilidad entre el paquete AAR de servicios de juego y la biblioteca v13?

Tomé el archivo de gradle de gradleplease.appspot.com.

Eliminar los servicios de juego no lo arregla; mismo error.

Mis dependencias dentro de build.gradle:

dependencies { // Google Play Services //compile ''com.google.android.gms:play-services:4.0.30'' // Support Libraries //compile ''com.android.support:support-v4:19.0.0'' ///compile ''com.android.support:appcompat-v7:19.0.0'' //compile ''com.android.support:gridlayout-v7:19.0.0'' compile ''com.android.support:support-v13:19.0.0'' compile ''org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.5'' compile ''commons-codec:commons-codec:1.9'' compile ''com.madgag:markdownj-core:0.4.1'' compile ''com.wu-man:android-oauth-client:0.0.2'' compile ''com.google.http-client:google-http-client-jackson2:1.17.0-rc'' compile ''org.apache.commons:commons-lang3:3.2'' compile ''com.google.code.gson:gson:2.2.4'' }


Como una imagen vale más que mil palabras.

Para que sea más fácil y rápido realizar esta tarea con principiantes como yo. estas son las capturas de pantalla que muestran la respuesta publicada por @edsappfactory.com que funcionó para mí:

Primero abra la vista de Gradle en el lado derecho de Androidstudio, en el elemento de su aplicación vaya a Tasks luego a Android , haga clic con el botón derecho en Android androidDependencies luego elija Run :

En segundo lugar verás algo como esto:

La razón principal por la que gradle esto es que no era fácil saber dónde ejecutar una tarea de gradle o los comandos publicados anteriormente. Así que aquí es donde los excitan también.

SO, para ejecutar el comando gradle:

Primero:

Segundo:

Fácil como es.

Eso es.

Gracias.


Ejecute las gradle -q dependencies (o gradle -q :projectName:dependencies ) para generar un informe de dependencia. Debería ver de dónde viene r7 , como:

compile - Classpath for compiling the main sources. +--- com.commonsware.cwac:camera-v9:0.5.4 | +--- com.actionbarsherlock:actionbarsherlock:4.4.0 | | /--- com.google.android:support-v4:r7 | +--- com.commonsware.cwac:camera:0.5.4 | /--- com.android.support:support-v4:18.0.+ -> 18.0.0 /--- com.android.support:support-v4:18.0.+ -> 18.0.0

Luego, use la directiva de exclude para bloquear esa dependencia. En mi caso, proviene de mi biblioteca de cámaras CWAC, y por eso uso:

dependencies { compile(''com.commonsware.cwac:camera-v9:0.5.4'') { exclude module: ''support-v4'' } compile ''com.android.support:support-v4:18.0.+'' }

(donde la segunda instrucción de compile indica qué versión realmente quieres)

Eso debería aclarar las cosas, como verá si vuelve a ejecutar el informe de dependencia:

compile - Classpath for compiling the main sources. +--- com.commonsware.cwac:camera-v9:0.5.4 | +--- com.actionbarsherlock:actionbarsherlock:4.4.0 | /--- com.commonsware.cwac:camera:0.5.4 /--- com.android.support:support-v4:18.0.+ -> 18.0.0


Eliminé la compilación ''com.android.support:support-v4:18.0.+'' en dependencias, y funciona


En Android Studio, vaya a su build.gradle (verifique los proyectos y los archivos de build.gradle de los módulos) y busque dependencias duplicadas.

Borra aquellos que tu proyecto no necesita.


En caso de que alguien descubra que la respuesta de CommonsWare no se pudo aplicar al proyecto de la biblioteca de Android, aquí está el fragmento para corregirlo.

compile (project ('': yourAndroidLibrary'')) {exclude module: ''support-v13''}

Encontraras problemas

Se encontró un método DSL de Gradle no compatible: ''exclude ()''

si usas compilar proyecto ('': yourAndroidLibrary'') {exclude module: ''support-v13''}

Las diferencias son la pulsera "(" y ")" antes de "proyecto" .


En mi caso, el problema fue causado por la inconsistencia de la versión :

Build tools 25 compileSdk 24 targetSdk 24 Support library 24

La solución fue simple: hacer todo la versión 25.


Este es un problema molesto, que puede llevar algún tiempo encontrar el caso raíz. La forma en que debe proceder es la respuesta de @CommonsWare.

Me enfrenté a este problema recientemente y me resultó difícil de resolver.

Mi problema era que estaba incluyendo una biblioteca con la versión "+" en build.gradle. La última versión de la biblioteca contenía uno de los anteriores dex y bang.

Volví a la versión anterior de la biblioteca y la resolví.

Es bueno ejecutar sus dependencias de Android y ver lo que realmente está sucediendo. También es bueno buscar en su carpeta de compilación.

Sobre todo, Android Studio 2.2 proporciona características de construcción para rastrear este problema.

Felices chicos de codificación


Estoy usando com.google.android.gms:play-services-analytics:8.3.0 y android-support-v13.jar y no puedo obtener el exclude module: ''support-v4'' para que funcione.

Lo que funcionó para mí fue usar el artefacto android-support-v13 lugar del archivo android-support-v13.jar .

Es decir, en lugar de

dependencies { compile (''com.google.android.gms:play-services-analytics:8.3.0'') compile files(''libs/android-support-v13.jar'')

}

solía

dependencies { compile (''com.google.android.gms:play-services-analytics:8.3.0'') compile (''com.google.android:android-support-v13'')

}


Finalmente, lo resolví modificando estos atributos en el módulo gradle file.

  1. compileSdkVersion 25
  2. targetSdkVersion 25
  3. compilar ''com.android.support:appcompat-v7:+''
  4. compilar ''com.android.support:recyclerview-v7:+''

He tenido el mismo problema. En mi proyecto, tuve las siguientes dependencias:

  • appcompat-v7
  • android-support-v13

Por razones de legado, la aplicación se extrajo del repositorio de Google Maven, mientras que el soporte de Android era un .jar local.

Cuando descubrí esto y reemplacé esta referencia local con una referencia de Maven, solo resolvió mi problema de compilación.

Aquí está el diff de mi app / build.gradle:


Resolví todos mis problemas agregando esto en project.properties

cordova.system.library.7=com.android.support:appcompat-v7:27.1.0


Se puso a trabajar para un conflicto de compile file(''...'') al aumentar minSdkVersion a 21 y habilitar multidex. No estoy seguro de si esa es la mejor solución, pero la única manera de que funcione en mi caso.

Nota: para el compile file(''...'') parece que no puede incluir una cláusula de exclude por lo que esa opción no estaba disponible.


Si has importado tu proyecto desde Eclipse .

1. The select project 2. Go to File -> **Project Structure** 3. Select app in **module** section on left hand panel 4. Select **Dependency** tab 5. Your able to see jars you have added in eclipse project for v4 and v13. 6. Remove that jar by clicking on minus sign at bottom after selection 7. Click on Plus sign select **Library Dependency** 8. Choose V4 and V13 if added 9. Press Ok and Clean and Rebuild your project

El escenario al que me he enfrentado después de importar el proyecto Eclipse al estudio de Android.

Espero que esto ayude..


También debe tener en cuenta que puede ver sus dependencias de Android, accediendo a su vista de Android Studio Gradle y seleccionando las "Dependencias de Android" de destino.

Un consejo más: estaba teniendo este problema, hasta que eliminé la versión de soporte de v4 de la carpeta libs tanto en el proyecto como en los proyectos de módulo / biblioteca relacionados.


Tuve el mismo error en un proyecto heredado. Mi culpa fue que la biblioteca de soporte se incluyó dos veces: una vez dentro de google-play-services lib, y otra como independiente.

Así es como lo arreglé:

BAD build.gradle:

dependencies { compile files(''libs/android-support-v4.jar'') compile files(''libs/core-2.2.jar'') compile files(''libs/universal-image-loader-1.8.5-with-sources.jar'') compile ''com.google.android.gms:play-services:3.2.65'' }

BUEN build.gradle:

dependencies { // compile files(''libs/android-support-v4.jar'') // not needed compile files(''libs/core-2.2.jar'') compile files(''libs/universal-image-loader-1.8.5-with-sources.jar'') compile ''com.google.android.gms:play-services:3.2.65'' }

Espero que ayude a alguien :-)


Tuve el mismo error pero fue porque recientemente había cambiado de usar v4 a v13. Así que todo lo que tenía que hacer era limpiar el proyecto.


Tuve el mismo problema al agregar react-native-palette a mi proyecto, aquí está mi árbol de dependencias:

./gradlew app:dependencies +--- project :react-native-palette | +--- com.facebook.react:react-native:0.20.+ -> 0.44.2 | | +--- javax.inject:javax.inject:1 | | +--- com.android.support:appcompat-v7:23.0.1 | | | /--- com.android.support:support-v4:23.0.1 | | | /--- com.android.support:support-annotations:23.0.1 -> 24.2.1 ... | /--- com.android.support:palette-v7:24.+ -> 24.2.1 | +--- com.android.support:support-compat:24.2.1 | | /--- com.android.support:support-annotations:24.2.1 | /--- com.android.support:support-core-utils:24.2.1 | /--- com.android.support:support-compat:24.2.1 (*) +--- com.android.support:appcompat-v7:23.0.1 (*) /--- com.facebook.react:react-native:+ -> 0.44.2 (*)

Probé muchas soluciones y no pude arreglarlo, hasta que cambié la versión com.android.support:appcompat en android/app/build.gradle , deseo que esto pueda ayudar:

dependencies { compile project('':react-native-palette'') compile project('':react-native-image-picker'') compile project('':react-native-camera'') compile fileTree(dir: "libs", include: ["*.jar"]) // compile "com.android.support:appcompat-v7:23.0.1" compile "com.android.support:appcompat-v7:24.2.1" compile "com.facebook.react:react-native:+" }

Parece que las entradas múltiples no son un gran problema, la discrepancia de versión es


Tuve el mismo problema y mi solución está cambiando la versión de soporte ''27. + ''(27.1.0) a ''27 .0.1''



Un método similar resuelto de problema de dex

gradle.build contenía:

compile files(''libs/httpclient-4.2.1.jar'') compile ''org.apache.httpcomponents:httpclient:4.5'' compile group: ''org.apache.httpcomponents'' , name: ''httpclient-android'' , version: ''4.3.5.1''

El problema se resolvió cuando quité

compile files(''libs/httpclient-4.2.1.jar'')

Mi gradle ahora se ve como:

apply plugin: ''com.android.application'' android { compileSdkVersion 24 buildToolsVersion "24.0.3" defaultConfig { applicationId "com.mmm.ll" minSdkVersion 16 targetSdkVersion 24 useLibrary ''org.apache.http.legacy'' } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.txt'' } } } dependencies { compile ''com.google.android.gms:play-services:6.1.+'' compile files(''libs/PayPalAndroidSDK.jar'') compile files(''libs/ksoap2-android-assembly-3.0.0-RC.4-jar-with-dependencies.jar'') compile files(''libs/picasso-2.1.1.jar'') compile files(''libs/gcm.jar'') compile ''com.android.support:appcompat-v7:24.2.1'' compile ''org.apache.httpcomponents:httpclient:4.5'' compile group: ''org.apache.httpcomponents'' , name: ''httpclient-android'' , version: ''4.3.5.1'' }

Hubo una redundancia en el archivo JAR y el proyecto comple gradle

Busque los archivos de dependencia y archivos jar que tengan las mismas clases.

Y eliminar la redundancia.
Esto funcionó para mí.


Eliminar todos los archivos de la caché de Gradle solucionó mi problema.

en Linux:

cd ~/.gradle rm -R -f *


Recibió el siguiente error

La ejecución falló para la tarea '': app: transformDexArchiveWithDexMergerForDebug''.

com.android.build.api.transform.TransformException: com.android.dex.DexException: Varios archivos dex definen Landroid / support / restricint / ConstraintSet $ ​​1

Arreglo: ve a Construir -> Limpiar Proyecto


Resolví un error similar agregando el siguiente fragmento de código a mi archivo build.gradle dentro del bloque de Android.

android { dexOptions { preDexLibraries = false } }


exclude module: ''support-v4''

No funcionaría para mí con una dependencia de proyecto, la única forma de hacerlo funcionar es a través de la siguiente sintaxis:

configurations { dependencies { compile(project('':Android-SDK'')) { compile.exclude module: ''support-v4'' } } }

Donde: Android-SDK es el nombre de tu proyecto.