代码之家  ›  专栏  ›  技术社区  ›  Flot2011

Android项目编译和运行时没有模块级build.gradle。对吗?

  •  0
  • Flot2011  · 技术社区  · 7 年前

    文件如下所示:

    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.2.3'
        }
    }
    apply plugin: 'com.android.application'
    
    dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
    }
    
    android {
        compileSdkVersion 21
        buildToolsVersion "22.0.1"
    
        productFlavors {
            arm {
                ndk {
                    abiFilters = ["armeabi-v7a", "arm64-v8a"]
                }
            }
        }
    
        defaultConfig {
            applicationId "com.mycompany.myapp"
            minSdkVersion 17
            targetSdkVersion 19
            versionCode 1
            versionName "9.99.99.99"
        }
    
        signingConfigs {
            release {
                storeFile file("myapp.jks")
                storePassword "mypwd"
                keyAlias "myalias"
                keyPassword "mykeypwd"
            }
        }
    
        buildTypes {
            release {
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                signingConfig signingConfigs.release
            }
            debug{
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                signingConfig signingConfigs.release
            }
        }
    
        sourceSets {
            main {
                manifest.srcFile 'AndroidManifest.xml'
                java.srcDirs = ['src']
                resources.srcDirs = ['src']
                aidl.srcDirs = ['src']
                renderscript.srcDirs = ['src']
                res.srcDirs = ['res']
                assets.srcDirs = ['assets']
                jniLibs.srcDirs = ['libs']
            }
    
            // Move the tests to tests/java, tests/res, etc...
            instrumentTest.setRoot('tests')
    
            // Move the build types to build-types/<type>
            // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
            // This moves them out of them default location under src/<type>/... which would
            // conflict with src/ being used by the main source set.
            // Adding new build types or product flavors should be accompanied
            // by a similar customization.
            debug.setRoot('build-types/debug')
            release.setRoot('build-types/release')
        }
    }
    

    我读过的所有文档和教程,包括Google和Gradle官方文档,都说明应该有两个Gradle文件,项目级和模块级。

    如果项目只有一个模块,那么必须使用模块级build.gradle吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Martin Zeitler    7 年前

    其中一个不一定需要模块(这在EclipseIDE和AndroidADT以及 ant mvn apply plugin: 'com.android.application' 并将其移动到子目录中,并将其作为中的模块引用 settings.gradle (这仅仅是Android工作室的标准)。

    这基本上取决于,如果一个人可能需要一个项目中的更多模块,并且在默认情况下,有一个带有一个子项目的项目时,添加和/或删除更多模块的工作就更少了,而无需先处理这些模块。此外,这还可以减少构建时间,因为不必总是重新构建整个代码基,而只需要更改模块基。

    推荐文章