versiones tutorial studio requisitos instalar full developers android android-studio

tutorial - android studio versiones



Android Studio-EXCEPCIÓN DE NIVEL SUPERIOR INESPERADA: (14)

Creé un nuevo proyecto en Android Studio usando las nuevas plantillas de proyecto proporcionadas como parte de la herramienta. Todo el código ha sido generado por Studio. Aún no he hecho ninguna enmienda.

Estoy intentando ejecutar el código pero la aplicación falla con los siguientes errores, no estoy seguro de cuál es el problema, así que cualquier ayuda es apreciada.

UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/v7/app/ActionBar$Callback; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103) FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task '':app:dexDebug''. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: C:/Users/RichardKavanagh/AppData/Local/Android/android-sdk/build-tools/19.0.1/dx.bat --dex --output D:/Android/Projects/MyHealthRecord/app/build/libs/app-debug.dex D:/Android/Projects/MyHealthRecord/app/build/classes/debug D:/Android/Projects/MyHealthRecord/app/build/dependency-cache/debug D:/Android/Projects/MyHealthRecord/app/build/pre-dexed/debug/android-support-v7-appcompat-5a78dab7e2789bbe64f4bc80d106ca75c04dcf6f.jar D:/Android/Projects/MyHealthRecord/app/build/pre-dexed/debug/classes-f9b947272e9f33ba50355b52d82755584f9c0c58.jar D:/Android/Projects/MyHealthRecord/app/build/pre-dexed/debug/support-v4-19.0.0-31a2c13df80d37d62ca50fec3bde6da0ca706223.jar Error Code: 2 Output: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/v7/app/ActionBar$Callback; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103) * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED Total time: 12.948 secs


Asegúrese de haber descargado el Repositorio de soporte para usar la dependencia de la biblioteca de soporte en build.gradle.

Si todo esto ya está instalado, sincronice su proyecto con Gradle una vez con el botón disponible.


Como todos los demás dijeron aquí, la biblioteca de soporte ( com.android.support ) está siendo incluida más de una vez en su proyecto. Intente agregar esto en su build.gradle en el nivel de raíz y debería excluir que la biblioteca de soporte se exporte a través de otras dependencias de proyectos.

configurations { all*.exclude group: ''com.android.support'', module: ''support-v4'' }

Si tiene más de una libs de soporte incluidas en las dependencias de este tipo, es posible que desee eliminar una de ellas:


De repente, sin ningún cambio importante en mi proyecto, también obtuve este error.

Todo lo anterior no funcionó para mí, ya que necesitaba las libs de soporte V4 y V7.

Al final, porque hace 2 horas el proyecto se compiló sin problemas, simplemente le dije a Android Studio que RECONSTRUYA el proyecto, y el error desapareció.


El error ocurre cuando tiene la misma biblioteca / directorio incluido más de una vez en las dependencias de build.gradle. Ok, digamos que tienes una estructura de aplicación que se ve así:

Entonces tienes la "aplicación" principal y luego tienes un montón de sub-aplicaciones / módulos / bibliotecas. Las bibliotecas son: 1) gene_test_library, 2) genes_nine_old_androids_library, y 3) swipe_list_view_library.

Mi nombre es Gene, por eso hay todas estas bibliotecas de "genes".

Dentro de build.gradle para "aplicación", tengo:

dependencies { compile fileTree(include: [''*.jar''], dir: ''libs'') compile ''com.android.support:appcompat-v7:21.0.0'' compile project('':libraries:gene_test_library'') //compile project('':libraries:genes_nine_old_androids_library'') compile project('':libraries:swipe_list_view_library'') }

Dentro de build.gradle para gen_test_library, no tengo nada:

dependencies { }

Dentro de build.gradle para gene_nine_old_androids_library, tengo:

dependencies { compile fileTree(dir: ''libs'', include: [''*.jar'']) compile ''com.android.support:appcompat-v7:21.0.0'' }

Dentro de build.gradle para swipe_list_view_library, tengo:

dependencies { compile ''com.nineoldandroids:library:2.4.0+'' compile fileTree(dir: ''libs'', include: [''*.jar'']) compile ''com.android.support:appcompat-v7:21.0.0'' }

Esta línea de código "compilar fileTree (dir: ''libs'', include: [''* .jar''])" simplemente significa "hey, mira dentro de la carpeta ''libs'' dentro de este módulo para cualquier archivo jar. No tengo nada en la carpeta libs de ninguno de los módulos, así que puedes ignorar esa línea de código.

Así que digamos que elimino el comentario // compile el proyecto ('': libraries: genes_nine_old_androids_library'') En el build.gradle para el módulo "app". Entonces obtendría el error "EXCEPCIÓN INESPERADA DE NIVEL SUPERIOR:". ¿Porqué es eso?

Bueno, escribir // compilar proyecto ('': libraries: genes_nine_old_androids_library'') dentro de build.gradle para "app", es lo mismo que tomar las dependencias de compilación del módulo "genes_nine_old_androids_library" y ponerlo allí. Descomentando así la declaración // compile project ('': libraries: genes_nine_old_androids_library''), el módulo build.gradle for "app" se convierte en:

dependencies { compile fileTree(include: [''*.jar''], dir: ''libs'') compile ''com.android.support:appcompat-v7:21.0.0'' compile project('':libraries:gene_test_library'') ***compile fileTree(dir: ''libs'', include: [''*.jar''])*** ***compile ''com.android.support:appcompat-v7:21.0.0''*** compile project('':libraries:swipe_list_view_library'') }

Observe cómo ahora "compilar" com.android.support:appcompat-v7:21.0.0 ''"aparece 2 veces. De ahí viene el error.


En mi caso, TOP LEVEL EXCEPTION fue throw debido a un char especial en la ruta del proyecto. Simplemente cerró el proyecto, cambió "á" a "a" y volvió a abrir el proyecto. ¡Trabajos!


Encontré 2 razones para este problema:

  1. A veces es debido a múltiples bibliotecas incluidas. Por ejemplo, agrega

    compile ''com.nineoldandroids: library: 2.4.0''

en su gradle y agregue otra biblioteca que también use "nineoldandroids" en su gradle!

  1. Como dijo el sitio web oficial de Android Developer :

Si ha creado una aplicación de Android y ha recibido este error, ¡felicidades, tiene mucho código!

¿Entonces por qué?

La especificación del ejecutable de Dalvik limita el número total de métodos a los que se puede hacer referencia en un único archivo DEX a 65.536, incluidos los métodos de Framework de Android, los métodos de biblioteca y los métodos en su propio código. Superar este límite requiere que configure el proceso de compilación de su aplicación para generar más de un archivo DEX, conocido como configuración multidex.

Entonces ¿qué deberías hacer?

  • Evitar el límite de 65 K - ¿Cómo?

    1. Revise las dependencias directas y transitivas de su aplicación: asegúrese de que cualquier dependencia de la biblioteca grande que incluya en su aplicación se use de una manera que supere la cantidad de código que se agrega a la aplicación. Un antipatrón común es incluir una biblioteca muy grande porque algunos métodos de utilidad fueron útiles. Reducir las dependencias de tu código de aplicación a menudo puede ayudarte a evitar el límite de referencia dex.
    2. Elimine el código no utilizado con ProGuard : configure ProGuard para que su aplicación ejecute ProGuard y asegúrese de que la reducción esté habilitada para versiones de lanzamiento. Al habilitar la reducción se garantiza que no envíe código no utilizado con sus APK.
  • Configurar su aplicación para Multidex con Gradle - ¿Cómo? 1.Cambie la configuración de compilación de Gradle para habilitar multidex.

poner

multiDexEnabled true

en las secciones defaultConfig, buildType o productFlavor de su archivo de compilación Gradle.

2.En su manifiesto, agregue la clase MultiDexApplication de la biblioteca de soporte multidex al elemento de la aplicación.

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.multidex.myapplication"> <application ... android:name="android.support.multidex.MultiDexApplication"> ... </application> </manifest>

Nota: si su aplicación utiliza extiende la clase de aplicación, puede anular el método attachBaseContext () y llamar a MultiDex.install (esto) para habilitar multidex. Para obtener más información, consulte la documentación de referencia de MultiDexApplication.

Además, este código puede ayudarlo a:

dexOptions { javaMaxHeapSize "4g" }

Pon en tu gradle (Android {...}).


Esta podría ser la respuesta más tonta, pero esto funcionó para mí:

  • Quité y agregué todas las bibliotecas en mi proyecto manualmente. (Una después de la otra) Y voila, funcionó.
  • Build -> Reconstruir proyecto

Nota: Ninguna biblioteca mía fue compilada dos veces.


Esto ocurre cuando una biblioteca se compila dos veces (es decir, se agrega dos veces). Puede ser una biblioteca de soporte o cualquier otra, no importa.
El caso común es que ha agregado una declaración de compilación de una biblioteca que ya está en su directorio libs/ . Todos los archivos *.jar se compilan automáticamente. Por lo tanto, agregar una declaración de compilación está causando el error. Eliminar esa declaración podría solucionar este problema. Si esto no es aplicable, entonces ya tenemos algunas respuestas asombrosas.


Hola a todos, tuve el mismo problema que estaba siendo causado por un archivo duplicado de la versión 4 de soporte que había incluido al intentar integrar el análisis sintáctico. ¡Eliminó la inclusión adicional del directorio libs y funciona bien ahora!


Porque puedes incluir dos libs iguales en tu proyecto. revisa tu archivo build.gradle.

dependencies { compile ''com.android.support:appcompat-v7:+'' compile files(''libs/android-support-v4.jar'') }

si su archivo incluye compilar ''com.android.support:appcompat-v7:+'' y compile files(''libs/android-support-v4.jar'') , tendrá este problema. eliminar esta frase: compilar archivos (''libs / android-support-v4.jar'')

Así es como soluciono este problema.


Resolví mi problema al agregar estos en build gradle:

defaultConfig { multiDexEnabled true dependencies { compile ''com.android.support:multidex:1.0.0''

otra solución puede ser eliminar bibliotecas innecesarias


Sé que el problema fue respondido, pero esto podría volver a suceder y mi solución fue un poco diferente de las que encontré. En mi caso, la solución no estaba relacionada para incluir dos bibliotecas diferentes en mi proyecto. Vea el código a continuación:

compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }

Este código daba el error "Excepción de nivel superior inesperado". Repara el código haciendo los siguientes cambios:

compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 }


Tuve un problema similar cuando traté de crear una aplicación firmada para mi aplicación.

Extraño, sucedió solo cuando quería construir una versión apk, mientras que en la depuración todo funcionaba bien.

Finalmente, al buscar en este hilo, verifiqué las duplicaciones de la biblioteca de soporte en build.gradle y eliminé cualquier duplicación, pero esto no fue suficiente.

Tenía que hacer un proyecto limpio y solo entonces finalmente lo hice funcionar.


dependencies { compile ''com.android.support:support-v4:19.1.+'' compile fileTree(dir: ''libs'', include: [''*.jar'']) }

Esto entra en conflicto si tiene el jar de soporte en su carpeta libs. Si tiene el jar de soporte en su carpeta de libs del proyecto y tiene la dependencia del módulo agregada para compilar ''com.android.support:support-v4:13.0.+'', se lanzará la excepción UNEXPECTED_TOPLEVEL_DEPENDANCY.