避免将.jar打包到Android库中(.aar)

时间:2014-11-13 11:39:54

标签: android jar gradle android-studio dropbox

我的项目是一个依赖Dropbox的android库的Android库。

dependencies {
    ...
    provided fileTree(dir: '../Libraries/Dropbox', include: ['*.jar'])
    ...
}

一切正常,除了Gradle将Dropbox中的所有.jar文件放入我的输出.aar文件。

MyLib.aar
|-classes.jar
|-AndroidManifest.xml
|-...
|-libs
    |-bcprov-jdk16-146.jar
    |-commons-logging-1.1.1.jar
    |-dropbox-android-sdk-1.6.1
    |-json_simple-1.1.jar

我该如何避免这种情况?

2 个答案:

答案 0 :(得分:2)

这样的事情可能会对你有所帮助:

android.libraryVariants.all { variant ->
    variant.outputs.each { output ->
        def packageLib = output.getPackageLibrary()
        packageLib.exclude('libs/externalLibrary.jar')
    }
}

在android {}块中

答案 1 :(得分:0)

  1. 为什么要避免这种情况?当您将库提供给某人时,他们将所有依赖项都存储在一个文件中。

  2. 您可以通过

  3. 添加依赖项
    compile 'com.dropbox.core:dropbox-core-sdk:1.7.7' 
    compile 'com.googlecode.json-simple:json-simple:1.1.1'
    compile 'commons-logging:commons-logging:1.2'
    compile 'org.bouncycastle:bcprov-jdk16:1.46'
    
    在build.gradle文件中

    并将其从libs文件夹中删除。对其他依赖项执行相同操作。这样它们就不会打包到你的.aar文件中。