40

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

import javax.inject.Inject;

Intellij 正在寻找 ' javax' 包,但不是 ' inject' 包,所以它失败了。

我是 Android 新手,所以如果这是一个没有道理的问题,我很抱歉,但是谁能告诉我为什么找不到注入包?

4

5 回答 5

29

Dagger depends on JSR 330, the Java standard annotations which are used for dependency injection (think: @Inject, @Singleton, etc.).

This is a separate jar that you have to include. If you were using a build system with integrated dependency management (Maven, Gradle, Ant+Ivy, sbt) you'd get this for free. If you're still copying around jars then you have to add it manually.

You can download the latest jar from Maven central (at the bottom).

于 2013-11-01T02:18:09.117 回答
24

将此添加到您的 pom.xml

<dependency>
    <groupId>javax.inject</groupId>
    <artifactId>javax.inject</artifactId>
    <version>1</version>
</dependency>
于 2016-03-21T13:53:27.843 回答
5

像这样直接从 Maven 添加注入库:

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

在此处输入图像描述

于 2020-04-16T08:53:24.427 回答
4

如果有人使用纯 Java 项目而不是 Maven 或 Gradle 等,您可以从此处下载单独的 Jar 文件Inject Jar file

然后添加到您的外部库中,在 IDEA 中您可以执行以下操作:文件 -> 项目结构 -> 库 -> 新项目库 (+)

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

于 2016-06-23T06:55:23.817 回答
0

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

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

于 2018-10-08T04:38:57.327 回答