I'm trying to implement Dagger as a dependency injector in an IntelliJ project, but my code is failing on:
import javax.inject.Inject;
Intellij is finding the 'javax
' package, but not the 'inject
' package, so it fails.
I am new to Android, so I apologize if this is a no brainer, but can anyone tell me why the inject package is not being found?
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).
add this to your pom.xml
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
In case if anyone using plain Java project not Maven or Gradle or e.t.c. You can download a separate Jar file from here Inject Jar file
and then add to your external libraries, in IDEA you can do that as follows:
File -> Project Structure -> Libraries -> New Project Library (+)
Then find the path to library and job is done.
// dependency injection
implementation "com.google.dagger:dagger:$rootProject.dagger2Version"
// dependency injection
implementation "com.google.dagger:dagger:$rootProject.dagger2Version"
implementation {
exclude(group: 'javax.inject', module: 'javax.inject')
}