El uso de buildToolsVersion 23 falla porque varios archivos dex definen 'AnimRes'
Antes de reclamar DUPLICADO por favor lea la pregunta.
Esto sólo ocurre con la última versión de las herramientas de compilación. Las versiones anteriores no muestran este problema. Ya he probado las soluciones ofrecidas en otras preguntas aquí para múltiples definiciones de @AnimRes
. Ninguno ha ayudado hasta ahora, por lo que he publicado una nueva pregunta. Los mismos síntomas, causa diferente, solución diferente.
- Fragmentos anidados - comunicación entre fragmentos secundarios en un fragmento padre en un viewpager
- Android: Vista inferior de navegación - cambia el icono del elemento seleccionado
- Diseño del menú emergente en Android 5.0
- La disposición del cajón no se cierra en la parte posterior presionada (dependiendo del soporte-v4 lib)
- Problemas de procesamiento en Android Studio v 1.1 / 1.2
Puedo construir sin problema al usar buildToolsVersion 22.0.1
, pero cuando cambie a buildToolsVersion 23
la compilación falla con error
EXCEPCION INESPERADA DE NIVEL SUPERIOR: com.android.dex.DexException: Varios archivos dex definen Landroid / support / annotation / AnimRes; En com.android.dx.merge.DexMerger.readSortableTypes (DexMerger.java:596) en com.android.dx.merge.DexMerger.getSortedTypes (DexMerger.java:554) en com.android.dx.merge.DexMerger.mergeClassDefs (DexMerger.java:535) en com.android.dx.merge.DexMerger.mergeDexes (DexMerger.java:171) en com.android.dx.merge.DexMerger.merge (DexMerger.java:189) en com.android. Dx.command.dexer.Main.mergeLibraryDexBuffers (Main.java:502) en com.android.dx.command.dexer.Main.runMonoDex (Main.java:334) en com.android.dx.command.dexer.Main. Run (Main.java:277) en com.android.dx.command.dexer.Main.main (Main.java:245) en com.android.dx.command.Main.main (Main.java:106)
Esta es una lista de mis dependencias:
provided 'org.projectlombok:lombok:1.16.4' compile 'com.android.support:support-v4:23.0.0' compile 'com.android.support:appcompat-v7:23.0.0' compile 'com.android.support:support-v13:23.0.0' compile 'com.android.support:cardview-v7:23.0.0' compile 'com.android.support:palette-v7:23.0.0' compile 'com.google.code.findbugs:jsr305:2.0.1' compile 'com.google.guava:guava:18.0' compile 'com.github.chrisbanes.photoview:library:1.2.3' compile 'org.apache.commons:commons-lang3:3.4' compile 'commons-io:commons-io:2.4' compile 'commons-codec:commons-codec:1.10' compile 'com.jakewharton:butterknife:7.0.1' compile 'com.squareup:otto:1.3.8' compile 'org.jsoup:jsoup:1.7.2' compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.squareup.retrofit:retrofit:1.9.0' compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0' compile 'com.squareup.okio:okio:1.5.0' compile 'com.flaviofaria:kenburnsview:1.0.6' compile 'com.edmodo:cropper:1.0.1' compile 'com.getbase:floatingactionbutton:1.10.0' compile 'com.nispok:snackbar:2.10.10' compile 'com.github.ksoichiro:android-observablescrollview:1.5.2' compile 'in.srain.cube:grid-view-with-header-footer:1.0.12' compile 'de.hdodenhof:circleimageview:1.3.0'
Para asegurar que todos (incluido Espresso) utilice la misma versión de las support-annotations
tengo lo siguiente en mi archivo de compilación:
configurations.all { resolutionStrategy.force 'com.android.support:support-annotations:23.0.0' }
Eliminar esto causará otros fallos.
¿Es esto un error posible en las herramientas de construcción o estoy haciendo algo mal? He intentado establecer Incremental false
en dexOptions
. No ayudó.
Uso de la ./gradlew -q app:dependencies
Tengo lo siguiente:
+--- com.android.support:support-v4:23.0.0 | \--- com.android.support:support-annotations:23.0.0 +--- com.android.support:appcompat-v7:23.0.0 | \--- com.android.support:support-v4:23.0.0 (*) +--- com.android.support:support-v13:23.0.0 | \--- com.android.support:support-v4:23.0.0 (*) +--- com.android.support:cardview-v7:23.0.0 +--- com.android.support:palette-v7:23.0.0 | \--- com.android.support:support-v4:23.0.0 (*) +--- com.google.code.findbugs:jsr305:2.0.1 +--- com.google.guava:guava:18.0 +--- com.github.chrisbanes.photoview:library:1.2.3 | \--- com.android.support:support-v4:19.+ -> 23.0.0 (*) +--- org.apache.commons:commons-lang3:3.4 +--- commons-io:commons-io:2.4 +--- commons-codec:commons-codec:1.10 +--- com.jakewharton:butterknife:7.0.1 +--- com.squareup:otto:1.3.8 +--- org.jsoup:jsoup:1.7.2 +--- com.squareup.picasso:picasso:2.5.2 +--- com.squareup.retrofit:retrofit:1.9.0 | \--- com.google.code.gson:gson:2.3.1 +--- com.squareup.okhttp:okhttp:2.4.0 | \--- com.squareup.okio:okio:1.4.0 -> 1.5.0 +--- com.squareup.okhttp:okhttp-urlconnection:2.4.0 | \--- com.squareup.okhttp:okhttp:2.4.0 (*) +--- com.squareup.okio:okio:1.5.0 +--- com.flaviofaria:kenburnsview:1.0.6 +--- com.edmodo:cropper:1.0.1 +--- com.getbase:floatingactionbutton:1.10.0 | \--- com.android.support:support-annotations:22.2.0 -> 23.0.0 +--- com.nispok:snackbar:2.10.10 | +--- com.android.support:recyclerview-v7:22.0.0 | | +--- com.android.support:support-v4:22.0.0 -> 23.0.0 (*) | | \--- com.android.support:support-annotations:22.0.0 -> 23.0.0 | \--- com.android.support:support-annotations:22.0.0 -> 23.0.0 +--- com.github.ksoichiro:android-observablescrollview:1.5.2 | \--- com.android.support:recyclerview-v7:21.0.0 -> 22.0.0 (*) +--- in.srain.cube:grid-view-with-header-footer:1.0.12 \--- de.hdodenhof:circleimageview:1.3.0
- Utilice Android Support Annotations como @StringRes, @LayoutRes, @DrawableRes para arreglos de enteros
- Incluso estoy usando MenuItemCompat.setOnActionExpandListener mi aplicación se bloquea con aconsejar utilizar MenuItemCompat.setOnActionExpandListener
- ¿Existen APIs / Samples / Tutorials oficiales para implementar las nuevas directrices de Material-Diseño?
- NoClassDefFoundError con Android Support Library y Maven
- Fragmento o fragmento de soporte?
- No se puede resolver el símbolo abc_ic_search_api_mtrl_alpha
- Abrir el cajón de navegación cuando se presiona el botón del menú de opciones
- Utilizar la clase DrawableCompat para aplicar una tintList
Actualización : Se corrige en la versión 23.0.1 de las herramientas de compilación ya que el directorio de support
ya no está incluido en renderscript-v8.jar
El culpable es la versión de renderscript-v8.jar
que se incluye en las herramientas de compilación.
Creo que esta salida del tree
lo dice todo:
C:. ├───renderscript-v8-22.0.01 │ ├───android │ │ └───support │ │ └───v8 │ │ └───renderscript │ └───META-INF └───renderscript-v8-23 ├───android │ └───support │ *** ├───annotation │ └───v8 │ └───renderscript └───META-INF
He etiquetado los directorios con la versión de las herramientas de compilación que los incluía. Observe el subdirectorio de annotations
en renderscript-v8-23
que no existe en renderscript-v8-22.0.01
.
Ya hay un informe sobre el problema aquí: https://code.google.com/p/android/issues/detail?id=179493 Y un duplicado aquí: https://code.google.com/p/android/ Problemas / detalle? Id = 181697
No puedo decir que entiendo esta solución – o que es necesariamente una buena solución, pero tiene mi compilación de aplicaciones de nuevo:
configurations.all { exclude group: 'com.android.support', module: 'support-annotations' }
También, vea: Obtención del error dex múltiple al usar lib de soporte de script de procesamiento
Crédito a Luboš Staráček por esta solución
- ¿Cómo poner un reloj (ver cómo se modifica una variable) en Android Studio?
- Propósito de navegación que funcionaría con mapas y waze