如何配置ChatSecure的顶级build.gradle文件以覆盖其他build.gradle文件?

3
我使用这个,想把targetSdkVersion提高到24,我该如何通过在顶层build.gradle文件中添加来实现这个变化?
我将build.gradle文件更改为以下内容,但是它给出了错误:找不到AndroidManifest。
        // Top-level build file where you can add configuration options common to all sub-projects/modules.

    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.2.2'
        }
    }
    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 24
        buildToolsVersion '24.0.2'
        defaultConfig {
            minSdkVersion 9
            targetSdkVersion 24
            versionCode 1411005
            versionName "14.1.1-RC-5"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        sourceSets {

        }
    }

    allprojects {
        repositories {
            jcenter()
        }
    }

首先,你不能在顶层构建中这样包含,它是从应用级别的构建gradle完成的。 - Nisarg
2个回答

5

添加顶层构建文件,您可以在其中添加适用于所有子项目/模块的配置选项。

在build.gradle(项目根目录)文件中添加以下内容。

ext {
    configuration = [
            appName          : "app_Name",
            applicationId    : "com.xx.xxx.app",
            minSdkVersion    : 14,
            targetSdkVersion : 24,
            compileSdkVersion: 24,
            versionCode      : 6,
            versionName      : "1.3.6",
            buildToolsVersion: "23.0.3",
    ]

    libraries = [
            supportVersion: "24.2.1"
    ]
}

在模块中

def appConfig = rootProject.ext.configuration;
def libs = rootProject.ext.libraries;


dependencies {
    compile project(':multiselect')
    compile "com.android.support:appcompat-v7:${libs.supportVersion}"

    }

例如:
根Gradle文件
// Top-level build file where you can add configuration options common to all sub-projects/modules.

ext {
    configuration = [
            appName          : "app name",
            applicationId    : "com.xx.xx.app",
            minSdkVersion    : 14,
            targetSdkVersion : 24,
            compileSdkVersion: 24,
            versionCode      : 6,
            versionName      : "1.3.6",
            buildToolsVersion: "23.0.3",
    ]

    libraries = [
            supportVersion: "24.2.1"
    ]
}

buildscript {
    repositories {
        jcenter()  // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }

    task checkstyle(type: Checkstyle) {
        showViolations = true
        configFile file("../config/checkstyle/checkstyle.xml")

        source 'src/main/java'
        include '**/*.java'
        exclude '**/gen/**'
        exclude '**/R.java'
        exclude '**/BuildConfig.java'

        // empty classpath
        classpath = files()
    }
}

task clean(type: Delete) {
    delete(rootProject.buildDir)
}

App Gradle

apply plugin: 'com.android.application'
apply plugin: 'checkstyle'

def appConfig = rootProject.ext.configuration;
def libs = rootProject.ext.libraries;

android {

    compileSdkVersion appConfig.compileSdkVersion
    buildToolsVersion appConfig.buildToolsVersion

    defaultConfig {
        applicationId appConfig.applicationId
        minSdkVersion appConfig.minSdkVersion
        targetSdkVersion appConfig.targetSdkVersion
        versionCode appConfig.versionCode
        versionName appConfig.versionName
        signingConfig signingConfigs.config
    }

    buildTypes {
        release {

        }
        debug {

        }
    }
    productFlavors {
    }
}

dependencies {
    compile project(':multiselect')
    compile "com.android.support:appcompat-v7:${libs.supportVersion}"
    compile "com.android.support:cardview-v7:${libs.supportVersion}"
    compile "com.android.support:recyclerview-v7:${libs.supportVersion}"
    compile "com.android.support:design:${libs.supportVersion}"
}

Module Gradle

apply plugin: 'com.android.library'


def appConfig = rootProject.ext.configuration;
def libs = rootProject.ext.libraries;

android {
    compileSdkVersion appConfig.compileSdkVersion
    buildToolsVersion appConfig.buildToolsVersion

    defaultConfig {
        minSdkVersion appConfig.minSdkVersion
        targetSdkVersion appConfig.targetSdkVersion
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile "com.android.support:appcompat-v7:${libs.supportVersion}"
    compile "com.android.support:design:${libs.supportVersion}"
}

了解有关配置构建的更多信息


1
您可以尝试这个。
顶层构建 Gradle。
    ext {      
        androidCompileSdkVersion = 25
        androidBuildToolsVersion = '25.0.1'
        androidMinSdkVersion = 14
        androidTargetSdkVersion = 25    }

    ext {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8 
    supportLibraryVersion = '25.0.1'
    retrofitVersion = '2.3.0'
    okhttpVersion = '3.6.0'
    parcelerApiVersion = '1.1.9'

    daggerVersion = '2.5'
    butterknifeVersion = '8.7.0'


    dependencies = [
            appCompat    : "com.android.support:appcompat-v7:$supportLibraryVersion",
            recyclerView : "com.android.support:recyclerview-v7:$supportLibraryVersion",
            cardView     : "com.android.support:cardview-v7:$supportLibraryVersion",
            designSupport: "com.android.support:design:$supportLibraryVersion",
            support      : "com.android.support:support-v4:$supportLibraryVersion",

            retrofit             : 
"com.squareup.retrofit2:retrofit:$retrofitVersion",
            retrofitConverterGson: "com.squareup.retrofit2:converter-gson:$retrofitVersion",
            retrofitAdapterRxJava: "com.squareup.retrofit2:adapter-rxjava:$retrofitVersion",
            retrofitLogging      : "com.squareup.okhttp3:logging-interceptor:$okhttpVersion",
            rxAndroid            : 'io.reactivex.rxjava2:rxandroid:2.0.1',
            rxJava               : 'io.reactivex.rxjava2:rxjava:2.1.0',
            rxBinding            : 'com.jakewharton.rxbinding:rxbinding:0.4.0',
            butterknife          : "com.jakewharton:butterknife:$butterknifeVersion",
            butterknifecompiler  : "com.jakewharton:butterknife-compiler:$butterknifeVersion",

    ] }  

APP级别的构建gradle。
 android {

     compileSdkVersion rootProject.ext.androidCompileSdkVersion

     buildToolsVersion rootProject.ext.androidBuildToolsVersion

     defaultConfig {
         applicationId "com.developerandroid"           
         minSdkVersion rootProject.ext.androidMinSdkVersion        
         targetSdkVersion rootProject.ext.androidTargetSdkVersion         
         versionCode 1          
         versionName "1.0"        
     }



packagingOptions {
            exclude 'META-INF/rxjava.properties'
          }

     } 

 dependencies {

   compile fileTree(dir: 'libs', include: ['*.jar'])

    Map<String, String> dependencies = rootProject.ext.dependencies
    //support
     compile dependencies.appCompat
     compile dependencies.recyclerView
     compile dependencies.cardView
     compile dependencies.designSupport
     compile dependencies.support 
    // retrofit
    compile dependencies.retrofit
    compile dependencies.retrofitConverterGson
    compile dependencies.retrofitLogging
    compile dependencies.retrofitAdapterRxJava
    // rx
    compile dependencies.rxJava
    compile dependencies.rxAndroid
    compile dependencies.rxBinding
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接