web-dev-qa-db-fra.com

Impossible de localiser le package d'importation javax.inject.Inject

J'essaie d'implémenter Dagger en tant qu'injecteur de dépendance dans un projet IntelliJ, mais mon code échoue:

import javax.inject.Inject;

Intellij recherche le package 'javax', mais pas le package 'inject'. Il échoue donc.

Je suis nouveau sur Android, alors je m'excuse si ce n'est pas évident, mais quelqu'un peut-il me dire pourquoi le paquet d'injection n'a pas été trouvé?

20
Indigo Nai

Dagger dépend de JSR 330, les annotations standard Java utilisées pour l'injection de dépendances (pensez: @Inject, @Singleton, etc.).

Ceci est un pot séparé que vous devez inclure. Si vous utilisiez un système de compilation avec gestion intégrée des dépendances (Maven, Gradle, Ant + Ivy, sbt), vous l'obtiendrez gratuitement. Si vous continuez à copier autour des bocaux, vous devez les ajouter manuellement.

Vous pouvez télécharger le dernier pot à partir de Maven central (en bas).

17
Jake Wharton

ajoutez ceci à votre pom.xml

<dependency>
    <groupId>javax.inject</groupId>
    <artifactId>javax.inject</artifactId>
    <version>1</version>
</dependency>
12
Dwight Lisper

Au cas où toute personne utilisant un projet Java simple ne serait pas Maven ou Gradle ou e.t.c. Vous pouvez télécharger un fichier Jar séparé ici Inject Jar file

ajoutez ensuite à vos bibliothèques externes. Dans IDEA, vous pouvez procéder comme suit:

Ensuite, trouvez le chemin d'accès à la bibliothèque et le travail est terminé.

3
hasskell

// injection de dépendance implémentation "com.google.dagger: dague: $ rootProject.dagger2Version"

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

0
Liubomyr Protsyk