You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

排除依赖后出现无法加载javax.inject.Provider类问题求助

解决openfoodfacts-java-wrapper依赖排除后无法加载javax.inject.Provider的问题

我在使用pl.coderion:openfoodfacts-java-wrapper:0.9.3 API时,此前为解决重复类错误对该依赖做了大量排除操作,现在出现无法加载javax.inject.Provider类的错误。以下是我的Gradle配置及错误提示,请求解决方法:

我的Gradle配置

implementation("pl.coderion:openfoodfacts-java-wrapper:0.9.3"){
    exclude("io.netty", "netty-codec")
    exclude("io.netty","netty-transport")
    exclude("io.netty","netty-buffer")
    exclude("io.netty", "netty-codec-http")
    exclude("io.netty", "netty-codec-socks")
    exclude("io.micronaut","micronaut-router")
    exclude("io.micronaut","micronaut-validation")
    exclude("io.micronaut","micronaut-context")
    exclude("io.micronaut","micronaut-runtime")
    exclude("io.micronaut","micronaut-websocket")
    exclude("io.micronaut","micronaut-http-netty")
    exclude("io.micronaut","micronaut-http-server-netty")
    exclude("io.micronaut","micronaut-http")
    exclude("io.micronaut","micronaut-http-client")
    exclude("io.micronaut","micronaut-core")
    exclude("io.micronaut","micronaut-inject")
    exclude("io.micronaut","micronaut-http-client-core")
    exclude("ch.qos.logback", "logback-classic")
    exclude("ch.qos.logback", "logback-core")
    exclude("org.slf4j", "slf4j-api")
    exclude("org.apache.commons", "commons-lang3")
    exclude("org.reactivestreams", "reactive-streams")
    exclude("org.slf4j", "slf4j-api")
    exclude("javax.annotation","javax.annotation-api")
    configurations.all {
        resolutionStrategy{
            exclude("com.google.code.findbugs","jsr305")
            exclude("javax.inject","javax.inject")
        }
    }
}

错误信息

无法加载类 'javax.inject.Provider'
javax.inject.Provider
Gradle的依赖缓存可能已损坏(这种情况有时会在网络连接超时后发生。)
重新下载依赖并同步项目(需要网络)
Gradle构建进程(守护进程)的状态可能已损坏。停止所有Gradle守护进程可能会解决此问题。
停止Gradle构建进程(需要重启)
您的项目可能正在使用与项目中其他插件或项目要求的Gradle版本不兼容的第三方插件。
如果Gradle进程损坏,您也可以尝试关闭IDE,然后终止所有Java进程。


解决方法

1. 恢复必要的依赖

错误的直接原因是你在全局配置中主动排除了javax.inject:javax.inject,而javax.inject.Provider类正是来自这个依赖包。请移除以下配置:

exclude("javax.inject","javax.inject")

2. 重新评估依赖排除策略

你当前排除了几乎所有Micronaut相关依赖,但openfoodfacts-java-wrapper是基于Micronaut框架开发的,这些依赖是库正常运行的核心,不能全部移除。重复类错误应该针对性解决版本冲突,而非直接排除整个依赖:

  • 使用Gradle的dependencyInsight命令定位冲突依赖:
    ./gradlew dependencyInsight --dependency <冲突依赖名>
    
    例如,若netty存在版本冲突,执行:
    ./gradlew dependencyInsight --dependency io.netty:netty-codec
    
  • 根据依赖树结果,通过resolutionStrategy指定统一版本,而非直接排除:
    configurations.all {
        resolutionStrategy {
            force "io.netty:netty-codec:4.1.94.Final" // 替换为你的项目兼容版本
        }
    }
    

3. 清理缓存并重启

  • 执行命令刷新依赖并清理缓存:
    ./gradlew clean build --refresh-dependencies
    
  • 停止Gradle守护进程:
    ./gradlew --stop
    
  • 关闭IDE并终止所有Java进程,重新打开项目同步Gradle。

内容的提问来源于stack exchange,提问作者Mihneas22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 14:47:11