我在Android Studio中开发Android项目时遇到了问题。
我使用多个* .jar扩展名文件作为我项目的库。 但是,它们之间有共同的类,即具有相同类名和相同包名的类。 * .jar扩展文件是:rt.jar和tools.jar。 " rt.jar"文件是从Debian OS(x86)的OpenJDK6 jre二进制文件获得的。 " tools.jar"文件是从Beads Library文件获得的,也就是说,它来自" Beads.zip"文件和" Beads.zip"文件位于:http://www.beadsproject.net/。我正在Android Studio中开发一个新的基于Beads的android项目。顺便说一句,我需要一个Android OS的JavaSound实现,因为Beads库需要一个JavaSound实现。所以,我想在Android Studio的基于Beads的android项目中使用OpenJDK中的javaRT,但是我发现了这个项目库中的冗余* .class扩展文件的问题" rt.jar"和" tools.jar"。
顺便说一句,我需要在调试模式"" app执行过程中排除多余的* .class扩展文件。 (相应的按钮被称为:在Android Studio中运行' app'),或者在" apk构建过程"中,使用Gradle工具,即&#34 ; classes.dex"文件创建/操作。
我搜索了网页,我在stackoverflow.com网站上找到了一些信息......然后,我使用了" multiDexEnabled true"在" defaultConfig"解决以前的一些问题的定义。
所以,我知道我可以使用" configurations.compile.transitive = false"尝试解决我的问题,但它没有工作。顺便说一句,我尝试使用:
configurations {
all*.exclude group: 'sun', module: 'sun.applet'
all*.exclude group: 'sun', module: 'sun.tools.jar'
}
,或
configurations {
all*.exclude group: 'sun', module: 'sun.applet'
}
configurations {
all*.exclude group: 'sun', module: 'sun.tools.jar'
}
例如,,但他们都没有工作。
我试过了:
dependencies {
compile files('lib/tools.jar') {
exclude group: 'sun', module: 'sun.applet'
exclude group: 'sun', module: 'sun.tools.jar'
}
}
,但它既没有工作,也没有。
我不知道这些语句是否有助于在此apk构建过程中排除冗余的* .class扩展Java文件,但我认为它们不是。
此问题中引用的网页链接为:
https://discuss.gradle.org/t/how-can-i-exclude-all-transitive-dependencies/6875
感谢您的帮助。
答案 0 :(得分:1)
从所有配置中排除的正确格式为:
configurations {
compile.exclude group: 'xml-apis', module: 'xmlParserAPIs'
compile.exclude group: 'org.slf4j', module: 'slf4j-simple'
}