在将库添加到我的Android项目之前,布局是这样的:
> MyappProject
> Myapp
> build.gradle
> settings.gradle
> build.gradle
顶级build.gradle始终为空,settings.gradle文件仅包含:
include ':Myapp'
我获得了一个我能够成功导入Android Studio的库项目,因此我认为其中的gradle文件很好.我现在有以下结构:
> MyappProject
> Myapp
> build.gradle
>图书馆
>图书馆
> LibrarySubProject1
> build.gradle
> ….
> build.gradle
> 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曾经建立过,图书馆似乎也很好.删除编译项目(‘: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'
解决方法:
您无法在Android Studio中的项目中拥有项目.您只能拥有模块,以便更改您的项目结构,如下所示,以便它符合允许的项目 – 模块级结构.
MyappProject
Myapp
build.gradle
libraries
LibrarySubProject1
build.gradle
....
settings.gradle
build.gradle(Root only one)
现在使用build.gradle文件执行以下操作
1.根级build.gradle文件
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
repositories {
mavenCentral()
}
如果您的库项目的根目录中有某些内容,则build.gradle文件也包含在此根级别的build.gradle文件中,因为只允许root在编译时自动包含在每个子级别的build.gradle文件中.
2. LibraryProject的build.gradle文件
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'
3.您的主模块的build.gradle文件应如下所示
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
}
}
dependencies {
//YOUR MODULE DEPENDENCIES
compile project(':libraries:LibrarySubProject1')
}
你的settings.gradle文件就像
include ':Myapp'
include ':libraries:LibrarySubProject1'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。