Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio-向所有模块添加SDK版本和依赖项_Android_Android Studio_Gradle - Fatal编程技术网

Android Studio-向所有模块添加SDK版本和依赖项

Android Studio-向所有模块添加SDK版本和依赖项,android,android-studio,gradle,Android,Android Studio,Gradle,在我目前工作的项目中,包含很多模块和依赖项。那么,有没有办法使所有这些版本和依赖项保持通用,并在所有模块中重用。我知道我们可以在root build.gradle文件中定义公共依赖项,但compileSdkVersions和exclude group之类的东西又如何呢。 我的依赖项有时包括排除组 androidTestCompile ('com.android.support.test:rules:1.0.1'){ exclude group: 'com.android.suppor

在我目前工作的项目中,包含很多模块和依赖项。那么,有没有办法使所有这些版本和依赖项保持通用,并在所有模块中重用。我知道我们可以在root build.gradle文件中定义公共依赖项,但compileSdkVersions和exclude group之类的东西又如何呢。 我的依赖项有时包括排除组

  androidTestCompile ('com.android.support.test:rules:1.0.1'){
    exclude group: 'com.android.support', module: 'support-annotations'
    exclude group: 'com.android.support', module: 'appcompat'
    exclude group: 'com.android.support', module: 'support-v4'
    exclude module: 'recyclerview-v7'
}
我们如何处理这种情况? 一旦我们有了外接程序root build.gradle,是否有任何方法可以将它们全部添加到一个应用程序模块中,而不指定下面这样的单个模块

compile deps.cardview
compile deps.design
compile deps.supportv4
compile deps.animation
compile deps.pagination
compile deps.shimmerlayout
compile deps.enhanced_card
compile deps.swipeanim
compile deps.appcompact

对于诸如compileSdkVersion、buildtype和compileOptions之类的内容,我在根梯度文件中定义了如下内容:

ext.android_settings_for_module = {
    compileSdkVersion COMPIlE_SDK_VERSION.toInteger()
    buildToolsVersion BUILD_TOOLS_VERSION

    defaultConfig {
        minSdkVersion 
        targetSdkVersion 
        versionCode 
        versionName 
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt')
        }
    }
    compileOptions compile_options
    lintOptions lint_options
    testOptions test_options
}

ext.lint_options = {
    //butterKnife
    disable 'InvalidPackage'
}

ext.compile_options = {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}
ext.common_libs = [

]
dependencies {
    compile common_libs
}
然后,在模块文件中,您可以使用:

android android_settings_for_module
对于依赖项来说非常相似。在根目录文件中定义一个字段:

ext.android_settings_for_module = {
    compileSdkVersion COMPIlE_SDK_VERSION.toInteger()
    buildToolsVersion BUILD_TOOLS_VERSION

    defaultConfig {
        minSdkVersion 
        targetSdkVersion 
        versionCode 
        versionName 
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt')
        }
    }
    compileOptions compile_options
    lintOptions lint_options
    testOptions test_options
}

ext.lint_options = {
    //butterKnife
    disable 'InvalidPackage'
}

ext.compile_options = {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}
ext.common_libs = [

]
dependencies {
    compile common_libs
}
然后在模块级渐变文件中使用:

ext.android_settings_for_module = {
    compileSdkVersion COMPIlE_SDK_VERSION.toInteger()
    buildToolsVersion BUILD_TOOLS_VERSION

    defaultConfig {
        minSdkVersion 
        targetSdkVersion 
        versionCode 
        versionName 
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt')
        }
    }
    compileOptions compile_options
    lintOptions lint_options
    testOptions test_options
}

ext.lint_options = {
    //butterKnife
    disable 'InvalidPackage'
}

ext.compile_options = {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}
ext.common_libs = [

]
dependencies {
    compile common_libs
}

用于共享通用SDK版本和依赖项。您可以在库模块中定义共享渐变依赖项,如果应用程序模块将库作为依赖项,则无需两次指定所有内容。进一步说,您可以创建一个需要共享渐变依赖项的“公共”模块,并使应用程序和库模块都需要公共模块

看看:

// 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:1.2.3'
}
}

// Load dependencies
apply from: 'dependencies.gradle'
下面是依赖项。gradle:适用于应用程序中的所有模块和sdk版本

ext {
//Version
supportLibrary = '22.2.1'

//Support Libraries dependencies
supportDependencies = [
        design           :         "com.android.support:design:${supportLibrary}",
        recyclerView     :         "com.android.support:recyclerview-v7:${supportLibrary}",
        cardView         :         "com.android.support:cardview-v7:${supportLibrary}",
        appCompat        :         "com.android.support:appcompat-v7:${supportLibrary}",
        supportAnnotation:         "com.android.support:support-annotations:${supportLibrary}",
]
}

快乐编码

如何使用排除组添加依赖项。如何使用排除组添加依赖项。