找不到导入javax.inject.Inject包

问题描述 投票:0回答:7

我正在尝试将 Dagger 实现为 IntelliJ 项目中的依赖项注入器,但我的代码失败了:

import javax.inject.Inject;

Intellij 正在查找 '

javax
' 包,但找不到 '
inject
' 包,因此失败。

我是 Android 新手,所以如果这是理所当然的事,我深表歉意,但是谁能告诉我为什么找不到注入包?

java importerror dagger
7个回答
31
投票

将其添加到您的 pom.xml

<dependency>
    <groupId>javax.inject</groupId>
    <artifactId>javax.inject</artifactId>
    <version>1</version>
</dependency>

30
投票

Dagger 依赖于 JSR 330,这是用于依赖注入的 Java 标准注释(想想:

@Inject
@Singleton
等)。

这是一个您必须包含的单独的罐子。如果您使用的是集成依赖管理的构建系统(Maven、Gradle、Ant+Ivy、sbt),您将免费获得此工具。如果您仍然在罐子周围复制,那么您必须手动添加它。

您可以从 Mavencentral(底部)下载最新的 jar。


9
投票

直接从 Maven 添加注入库,如下所示:

  • 文件 -> 项目结构 -> 项目设置 -> 库 -> 添加 -> 来自 Maven
  • 搜索
    javax.inject:javax.inject:1
  • 找到后点击确定


7
投票

放入gradle

implementation 'javax.inject:javax.inject:1'

4
投票

如果有人使用普通 Java 项目而不是 Maven 或 Gradle 等。您可以从这里下载单独的 Jar 文件 注入 Jar 文件

然后添加到你的外部库中,在IDEA中你可以这样做: 文件 -> 项目结构 -> 库 -> 新建项目库 (+)

然后找到图书馆的路径,工作就完成了。


0
投票

//依赖注入 实现“com.google.dagger:dagger:$rootProject.dagger2Version”

// dependency injection
    implementation "com.google.dagger:dagger:$rootProject.dagger2Version"
    implementation {
        exclude(group: 'javax.inject', module: 'javax.inject')
    }


0
投票

仅供参考,以防有人(像我一样)无意中发现目前正在运行(大型)JakartaEE 升级会话的人:

Jakarta EE 10 向 jakarta-namespace 移动了很多内容 - 包括

javax.inject
- 请参阅 https://mvnrepository.com/artifact/javax.inject/javax.inject

现在可以在 Maven 依赖项中找到类

Inject
https://mvnrepository.com/artifact/jakarta.inject/jakarta.inject-api

© www.soinside.com 2019 - 2024. All rights reserved.