gpt4 book ai didi

android - Gradle,如何从依赖项 jar 文件中排除类/包?

转载 作者:行者123 更新时间:2023-12-03 21:37:30 24 4
gpt4 key购买 nike

我的主要 build.gradle 中有 Findbugs 插件文件。为了停止它的提示,我添加了一些问题 annotation.jarjsr305.jar进入我的 libs 文件夹,我正在使用 @SuppressFBWarnings任何需要的地方。

当我尝试构建我的项目时出现以下错误。:passenger-

app:dexTaxDebug
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Ljavax/annotation/CheckForNull;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
at com.android.dx.command.dexer.Main.run(Main.java:277)
at com.android.dx.command.dexer.Main.main(Main.java:245)
at com.android.dx.command.Main.main(Main.java:106)
Error:Execution failed for task ':passenger-app:dexTaxDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-8-oracle/bin/java'' finished with non-zero exit value 2

注:我知道一个解决方案是激活 multidex Building Apps with Over 65K Methods .我也不相信 Progard :(

所以,如果可能的话,我正在寻找一种从依赖 jar 文件中排除类的方法。我们有一些模块的东西,对于 jar 文件来说似乎是不可能的。
compile('com.google.android.gms:play-services-analytics:7.3.0') {
exclude group: 'com.google.android.gms', module: 'play-services-base'
}

我的主要内容 build.gradle文件
configure(allprojects) {
apply plugin: 'findbugs'

task findbugs(type: FindBugs) {
ignoreFailures = false
effort = "max"

classes = fileTree('build/intermediates/classes/')
source = fileTree('src/main/java')
classpath = files()

excludeFilter = file("$rootProject.rootDir/config/findbugs/exclude.xml")

reportLevel = "high"
reports {
xml.enabled = false
html.enabled = true
}
}
}

以及我的依赖项目中的这些依赖项
dependencies {
....

// Findbugs libs in order to surpass warnings
compile files('src/main/libs/annotations.jar')
compile files('src/main/libs/jsr305.jar')

....
}

任何建议将不胜感激。

最佳答案

尝试像这个例子一样修改 jar 闭包

project(':api:core') {

dependencies {
compile project(':api:schema')
compile project(':api:util')
}

jar {
baseName = 'core'
dependsOn classes
from sourceSets.main.classes
exclude('net/intellidata/core/**/*Impl*')
}

task caaJar(type: Jar) {
baseName = 'caa'
dependsOn classes
from sourceSets.main.classes
include('net/intellidata/core/**/CAA*Impl*')
}
}

关于android - Gradle,如何从依赖项 jar 文件中排除类/包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33400774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com