我的项目是一个依赖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
我该如何避免这种情况?
答案 0 :(得分:2)
这样的事情可能会对你有所帮助:
android.libraryVariants.all { variant ->
variant.outputs.each { output ->
def packageLib = output.getPackageLibrary()
packageLib.exclude('libs/externalLibrary.jar')
}
}
在android {}块中
答案 1 :(得分:0)
为什么要避免这种情况?当您将库提供给某人时,他们将所有依赖项都存储在一个文件中。
您可以通过
在build.gradle文件中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'
并将其从libs文件夹中删除。对其他依赖项执行相同操作。这样它们就不会打包到你的.aar文件中。