Android Studio和Gradle - 构建失败

时间:2013-06-17 08:59:31

标签: android gradle android-studio android-gradle

我正在建立一个小型图书馆项目以及一个示例项目来说明其用途。我无法在Android Studio中运行该示例。我从头开始创建项目。我对Eclipse很有经验,但这是我在Android Studio& amp;摇篮。

给出的错误:

  

Gradle:任务执行失败':demo:dexDebug'。

     

运行C:\ DevTools \ Android \ android-studio \ sdk \ build-tools \ android-4.2.2 \ dx.bat   失败。见输出

我有以下文件夹结构:

- 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:

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

项目根目录下的Settings.gradle:

include ':library', ':demo'

库模块的Build.gradle:

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:

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 个答案:

答案 0 :(得分:25)

指定compile files('libs/android-support-v4.jar')表示每个库都包含支持v4。你想要做的只是指定每个库依赖它:

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

这将允许gradle检测所有依赖项,并且只包含一次。

注意:您必须首先使用SDK Manager并下载并安装两个Maven存储库:“Android支持存储库”和“Google存储库”。

答案 1 :(得分:1)

我发现了问题:

我从示例gradle文件中删除了该行。

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

但是,我不知道为什么这不起作用(如果我有2个或3个外部库都依赖于支持库,我们应该怎么做,而不触及他们的gradle文件?

答案 2 :(得分:0)

您应该导航到IDE中的libs文件夹,右键单击jar并选择将库添加到项目中,即使jar看起来在那里,仍然需要建立依赖关系。另请查看您的gradle构建脚本,以确保依赖项出现在那里。如果仍然无法正常运行,请在项目上运行gradle clean。 Intellij文档将为您提供有关清洁功能的更多详细信息。见:

stackoverflow gradle build