添加库后无法使用gradle编译Android项目

在将库添加到我的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] 举报,一经查实,本站将立刻删除。

相关推荐