【发布时间】:2014-03-11 10:47:10
【问题描述】:
在向我的 Android 项目添加库之前,布局是这样的:
- MyappProject
- 我的应用程序
- build.gradle
- 我的应用程序
- settings.gradle
- build.gradle
顶层 build.gradle 一直是空的,settings.gradle 文件只包含:
include ':Myapp'
我获得了一个库项目,我能够成功地将它导入 Android Studio,所以我认为其中的 gradle 文件很好。我现在有以下结构:
- MyappProject
- 我的应用程序
- build.gradle
- 库
- 图书馆
- 库子项目1
- build.gradle
- ....
- build.gradle
- 库子项目1
- 图书馆
- 我的应用程序
- settings.gradle
- build.gradle
...顶级设置 gradle 现在看起来像:
include ':Myapp'
include ':libraries:Library'
我还更新了 Myapp 的 build.gradle,因此它在此处的依赖项中包含了额外的最后一行:
dependencies {
compile 'com.android.support:support-v4:+'
compile files('libs/commons-lang3-3.1.jar')
compile files('libs/jsoup-1.7.3.jar')
compile project(':libraries:Library')
}
不幸的是,任何使用 gradle 做任何事情(同步文件、构建等)的尝试现在都会让我得到以下结果:
Gradle 'MyappProject' project refresh failed:
Configuration with name 'default' not found.
Gradle settings
对设置的任何更改似乎都没有效果,Android Studio 将设置保持为“使用默认 gradle 包装器”。 据我了解,这意味着顶层 build.gradle 存在问题,该文件不包含构建子项目的足够信息。但是,也许我误解了,因为 Myapp 用来构建和 Library 似乎也很好。删除 compile project(':libraries:Library') 允许 gradle 文件再次同步,但我想使用该库...
欢迎任何有关如何解决此问题的建议。
已编辑以从库中添加 build.gradle。顶级:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
allprojects {
version = VERSION_NAME
group = GROUP
repositories {
mavenCentral()
}
}
从下一级开始:
apply plugin: 'android-library'
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'
【问题讨论】:
-
听起来
:libraries:Library没有(隐式或显式)声明default配置,在这种情况下,无法使用项目依赖项来引用它。 -
谢谢。我一直在查看 gradle 文档,但我不清楚如何声明配置。请您介意指点我应该阅读的内容吗?
-
你能从图书馆项目中展示你的 build.gradle 吗?
-
我已按要求添加了一些 build.gradle 文件。
-
您不必手动声明
default配置;android-library插件应该可以解决这个问题。我不知道这个插件是如何工作的细节,但是你在学习了官方的 Gradle Android 插件文档之后应该能够找到解决方案,其中包含很多关于项目依赖等的信息。
标签: android gradle android-studio