2

我创建了一个新项目,其中只有一个模块是一个库。

安卓工作室

这是我的 build.gradle

apply plugin: 'com.android.library'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 18
        targetSdkVersion 21
        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:appcompat-v7:21.0.3'
    compile 'org.altbeacon:android-beacon-library:2+@aar'
}

如果我构建这个项目,它会生成一个aar名为app-debug.aar45kb 的文件。我想知道为什么我需要包含对主项目的所有依赖项,因为如果我只包含 的依赖项app-debug.aar,它会抛出一个ClassNotFoundException.

为什么我需要这样做?

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile ('org.altbeacon:android-beacon-library:2+@aar')
    compile (name:'app-debug', ext:'aar')
}

我是否可以找到一种不需要在主项目(apk)上包含诸如 altbeacon 之类的依赖项并且仅使用app-debug.aar依赖项的方法?

提前致谢。

4

1 回答 1

2

在您的应用程序项目中尝试此操作:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile (name:'app-debug', ext:'aar') {
       transitive = true
    }
}
于 2015-04-08T17:06:20.993 回答