我正在 Build 一个小型图书馆项目以及一个示例项目来说明其用途 . 我无法在Android Studio中运行该示例 . 我从头开始创建项目 . 我对Eclipse很有经验,但这是我第一次尝试使用Android Studio和Gradle .
给出的错误:
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 回答
指定
compile files('libs/android-support-v4.jar')
表示每个库都包含支持v4 . 你想要做的只是指定每个库依赖它:这将允许gradle检测所有依赖项并仅包含一次 .
注意:您必须首先使用SDK Manager并下载并安装两个Maven存储库:“Android Support Repository”和“Google Repository” .
我发现了问题:
我从示例gradle文件中删除了该行 .
但是,我不知道为什么这不起作用(如果我有2或3个外部库都依赖于支持库,我们应该怎么做,而不触及他们的gradle文件?
您应该导航到IDE中的libs文件夹,右键单击jar并选择将库添加到项目中,即使jar似乎在那里,它仍然需要 Build 依赖关系 . 另请查看您的gradle构建脚本,以确保依赖项出现在那里 . 如果仍然无法正常运行,请在项目上运行gradle clean . Intellij文档将为您提供有关清洁功能的更多详细信息 . 看到:
stackoverflow gradle build