【问题标题】:Different gradle versions for library and application库和应用程序的不同 gradle 版本
【发布时间】:2014-04-11 10:23:38
【问题描述】:

我目前正在尝试添加一个library,依赖于 froger_mcs 在this 帖子中的回答。

很遗憾,我没能在库的源文件中找到 build.gradle 来完成最后一步:

最后你必须在 /libriaries/actionbarsherlock/ 目录中创建另一个 build.gradle 文件。

所以我添加了一个在 gipi 的答案 here 中找到的。

我最终遇到了以下问题:

当我运行 ./gradlew clean 时,它说我要添加的库需要 gradle 版本 1.9。当我将 gradle-wrapper.properties 中的版本更改为 1.9 并再次运行相同的任务时,它说我的应用程序需要 gradle 版本 1.8。

我错过了什么?

MyProject/external/TheLibrary/build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.+'
    }
}

apply plugin: 'android-library'

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
       }
    }
}

MyProject/MyApp/build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 19
    }
}

dependencies {
    compile project(':external:TheLibrary')
    /* other dependencies */
}

MyProject/settings.gradle:

include ':external:TheLibrary', ':MyApp'

【问题讨论】:

    标签: android gradle


    【解决方案1】:

    尝试添加可用的最新版本的 gradle。

    将您的 build.gradle 放入根目录(在您的情况下为 MyProject)

    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.+'
    }
    

    另外,您不需要为每个项目指定 gradle。你可以把它放在你的主 bu​​ild.gradle 中,其他库将从中读取。我的 build.gradle 看起来像下面的清单。对于您的情况,build.gradle 将位于 MyProject 根目录中。因此,您要编辑全局 build.gradle 而不是模块内部的那些(MyApp 和 TheLibrary)。您可以将您的 claspath 延迟到这些模块中的 gradles - 全局只创建一个。

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.9.+'
        }
    }
    
     allprojects {
        repositories {
            mavenCentral()
        }
    }
    

    放入你的 gradle 包装器:

    distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
    

    而且我认为构建工具可能是这里的主要问题。使您的每个 lib 项目都具有与您的主项目相同的构建工具变体,因此,来自:

    compileSdkVersion 17
    buildToolsVersion "17.0.0"
    

    到:

    compileSdkVersion 19
    buildToolsVersion "19.0.0"
    

    顺便说一句。有 19.0.3 可用。

    【讨论】:

    • 嗯,它奏效了。现在构建成功完成。谢谢。
    • 对混乱的垃圾邮件感到抱歉。我在过去 5 分钟内编辑了 10 次:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多