当我的AAR已经包含它们时,将依赖项添加到我的项目中

时间:2015-08-13 15:41:43

标签: android gradle android-gradle aar

当我的AAR库已经使用了这些依赖项时,为什么gradle强制我向主模块添加依赖项?

示例:

我的AAR库gradle:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

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

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile('com.android.support:design:22.2.1')
    compile('com.android.support:appcompat-v7:22.2.1')
    compile('com.android.support:cardview-v7:22.2.1')
    compile('com.android.support:recyclerview-v7:22.2.1')
    compile('de.greenrobot:eventbus:2.4.0')
}

我的应用程序gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.firetrap.blaap"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile ('my_package_name:channels.base@aar')
 }

为什么我不能使用,例如,来自我的AAR的com.android.support:cardview-v7:22.2.1

1 个答案:

答案 0 :(得分:0)

这是因为你的班级文件不会被带入你的dex。但我认为你寻求的解决方案不是你问题的答案。一个解决方案可能是提取并下载aar并将其包含在您的库中我认为这样可行。