para - Android Studio y Gradle-la compilación falla
kotlin (3)
Estoy construyendo un pequeño proyecto de biblioteca junto con un proyecto de muestra para ilustrar el uso. No consigo ejecutar la muestra 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: la ejecución falló para la tarea '': demo: dexDebug''.
La ejecución de C: / DevTools / Android / android-studio / sdk / build-tools / android-4.2.2 / dx.bat falló. Ver 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
Build.gradle en la raíz del proyecto:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
Settings.gradle en la raíz del proyecto:
include '':library'', '':demo''
Build.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
}
}
Build.gradle para el módulo de muestra:
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
}
}
Debería navegar hasta la carpeta libs en el IDE, hacer clic con el botón derecho en el archivo y seleccionar para agregar la biblioteca al proyecto, aún debe establecer la dependencia aunque el archivo parece estar allí. También mire su script de gradle built para asegurarse de que la dependencia aparezca allí. Si eso todavía no funciona, simplemente ejecute una limpieza gradual en el proyecto. La documentación de Intellij le dará más detalles sobre lo que limpia. ver:
Encontré el problema:
Quité esa línea del archivo gradle de muestra.
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 dependen de la biblioteca de asistencia, ¿cómo se supone que debemos hacerlo sin tocar sus archivos de gradle?
Especificar compile files(''libs/android-support-v4.jar'')
significa que cada biblioteca incluye soporte v4. Lo que quieres hacer es simplemente especificar que cada biblioteca depende de ello:
dependencies {
compile ''com.android.support:support-v4:13.0.0''
}
Esto permitirá a Gradle detectar todas las dependencias e incluir esto solo una vez.
Nota: primero debe usar el Administrador de SDK y descargar e instalar dos repositorios de Maven: "Repositorio de soporte de Android" y "Repositorio de Google".