Android Studio y Gradle – la compilación falla

Estoy construyendo un pequeño proyecto de la biblioteca junto con un proyecto de ejemplo para ilustrar el uso. No he podido ejecutar el ejemplo en Android Studio. He creado el proyecto desde cero. Tengo experiencia con Eclipse pero es mi primer intento en Android Studio & Gradle.

El error dado:

Gradle: error en la Ejecución de la tarea ‘:demo:dexDebug’.

Ejecutando C:\DevTools\Android\android-studio\sdk\build-tools\android-4.2.2\dx.bat
fracasado. Ver la salida

Tengo la siguiente estructura de carpetas:

- demo
  - build
  - libs
    - android-support-v4.jar
  - src
    - main
      - java
      - res
  - build.gradle
- library
  - build
  - libs
    - android-support-v4.jar
  - src
    - main
      - java
      - res
  - build.gradle
- build.gradle
- settings.gradle

Construir.gradle en la raíz del proyecto:

//Top-level build file where you can add configuration options common to all sub-projects/modules.

Configuración.gradle en la raíz del proyecto:

include ':library', ':demo'

Construir.gradle para el módulo de biblioteca:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android-library'

dependencies {
    compile files('libs/android-support-v4.jar')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
}

Construir.gradle para la muestra del módulo:

buildscript {
    repositories {
        mavenCentral() 
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
    compile project(':library')
    compile files('libs/android-support-v4.jar')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
}

3 Kommentare

  1. 25

    Especificando compile files('libs/android-support-v4.jar') significa que cada biblioteca incluye soporte v4. Lo que quieres hacer es especificar que cada biblioteca depende de ello:

    dependencies {
        compile 'com.android.support:support-v4:13.0.0'
    }

    Esto permitirá gradle para detectar todas las dependencias e incluir sólo una vez.

    Nota: Usted tendrá que utilizar el SDK Manager y descargar e instalar dos repositorios de Maven: «Soporte para Android Repository» y «Google » Repositorio».

    • funcionó para mí – tomó más tiempo de lo necesario, porque aunque me ignoró el Repositorio de Google!
    • ¿Tienes que volver a importar el proyecto en Android Studio para que surta efecto?
    • lo que si, vamos a utilizar otra biblioteca ? Por ejemplo si usamos myLibrary, qué tipo de dependencias ?
    • He tenido que reiniciar el Android Studio para que funcione.
  2. 1

    He encontrado el problema:

    He quitado esa línea a partir de la muestra gradle archivo.

    compile files('libs/android-support-v4.jar')

    Sin embargo, no tengo idea de por qué esto no funciona (si tengo 2 o 3 bibliotecas externas que todo dependerá del apoyo de la biblioteca, cómo se supone que vamos a hacer, sin tocar sus gradle archivos?

    • Pero esto también ocurriría si tiene el apoyo de la biblioteca incluidas tanto en su lib y en su proyecto principal, gradle o no gradle hay que tenerlo en 1 sólo lugar.
    • En Eclipse nunca he tenido ningún problema, tan lejos como los archivos jar fueron las mismas para cada uno (biblioteca) del proyecto.
  3. 0

    Usted debe navegar a la carpeta libs en el IDE, haga clic en el frasco y seleccione agregar a la biblioteca para el proyecto, todavía es necesario establecer la dependencia, incluso a pesar de que el frasco parece estar allí. También mira a tu gradle construido guión para asegurarse de que la dependencia aparece allí. Si eso no funciona, simplemente ejecute un gradle limpio en el proyecto. Intellij documentación que se le entregue más detalles sobre lo limpio que hace. ver:

    stackoverflow gradle construir

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea