android - 库和应用程序的不同 gradle 版本

标签 android gradle

我目前正在尝试添加 library依靠 froger_mcs 在 this 中的回答邮政。

不幸的是,我没有设法在库的源文件中找到 build.gradle 来完成最后一步:

At the end you have to create another build.gradle file in /libriaries/actionbarsherlock/ directory.



所以我添加了一个在 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']
       }
    }
}

我的项目/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 */
}

我的项目/settings.gradle:
include ':external:TheLibrary', ':MyApp'

最佳答案

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

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

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

另外,您不需要为每个项目指定 gradle。你可以把它放在你的主 bu​​ild.gradle 中,其他库将从中读取。我的 build.gradle 看起来像下面的 list 。对于您的情况,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 可用。

关于android - 库和应用程序的不同 gradle 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23009931/

相关文章:

gradle - CucumberWithSerenity:initializationError(serenity.TestRunner):net/thucydides/core/guice/Injectors

gradle - 如何在Android的Gradle中添加存储库和依赖项。实际上是在尝试将SDk集成到我现有的应用中

android - 在 A 点和 B 点之间播放音频

java - Android - 膨胀类 EditText 时出错

android - 通过 adb 授予 PACKAGE_USAGE_STATS 权限

plugins - 如何在自定义插件中编写dependsOn

android - 如何在android中单击按钮从前到后和从后到前更改相机

android - 将 Cursor 与 ListView 适配器一起用于大量数据

gradle - 如何创建没有根目录的 'tar.gz'包?

android - 如何打包我的 Android 库,以便我的客户不会遇到像 "AAPT: error: attribute layout_behavior"这样的错误