如何将模块编译为AAR并将其包含在一个构建的项目中?

时间:2017-05-25 03:20:45

标签: android-studio gradle android-gradle aar

我有一个app模块和一个我用作库的模块 - 我仍在对库进行更改,因此它不是预编译的。库模块有自己的res文件夹,我想将其与主应用程序的res文件夹分开。我相信这样做的唯一方法是在将库包含在主应用程序之前将其打包为aar。如果我可以运行单个Gradle构建来打包库并包含它将会很方便。这可能吗?

gradle.build for app(编译“my-library”):

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"

    defaultConfig {
        applicationId "com.app.id"
        minSdkVersion 18
        targetSdkVersion 25
        versionCode 5
        versionName "1.4"
    }

    sourceSets {
        main {
            assets.srcDirs = [project.ext.ASSET_DIR]
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile project(':my-library')
}

gradle.build for my-library:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"

    defaultConfig {
        minSdkVersion 18
        targetSdkVersion 25
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

1 个答案:

答案 0 :(得分:0)

事实证明,Android Studio足够智能处理带有res文件夹的库模块。我的错误来自清单文件中的冲突。