im essayant d'utiliser Dagge 2 sur Android. Auparavant, je l'avais déjà travaillé et j'avais eu une injection de dépendances d'Appmodule dans des classes spécifiques de l'application. Mon problème est que iam obtient l'erreur qui tente d'importer. Ceci est une classe autogéné portée p> ci-dessous sont mes dépendances spécifiques à dague dans mon fichier build.Gradle p> ive essayé de nettoyer et de reconstruire l'application plusieurs fois mais le la classe ne générera pas. J'ai également essayé d'utiliser P> @Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
void inject(RegHelper reghelper);
void inject(headerFooterRecViewAdapter headadapter);
void inject(SectionListExampleActivity seclistactivity);
}
8 Réponses :
Vous devez installer ce plugin https://bitbucket.org/hvisser/androïde-aptle/a > Pour le studio Android de voir les composants Dagger. P>
j'ai ce plugin classpath 'com.android.tools.build:gradle:1.0' classpath 'com.neenbedankt.gradle.plugins: android-APT: 1.8' et appliquer plugin: 'com.android.application' Appliquer plugin : 'com.neenbedankt.android-apt'
J'avais un problème similaire avec Dagge 2. J'avais une application d'application et un sous-composant (étant un sous-composant). Et dès que j'ajouterais une nouvelle fonction injecter () dans l'appelcomponent, j'aurais obtenu les erreurs ci-dessus.
Il y avait plus d'erreurs en dehors de l'erreur "Impossible de trouver le symbole", mais ils étaient très vagues et je ne pouvais pas déboguer mes problèmes. Après avoir creusé et rechercher Stackoverflow et différents tutoriels, j'ai réalisé que j'utilisais de manière incorrecte. Spécifiquement la manière dont mon application et mon activité a été configuré. P>
J'étais sous l'hypothèse que je pouvais injecter mon "activité" ou "fragment" avec mon appcuponque et mon entrepriseComponce. Cela s'est avéré être faux, au moins j'ai découvert que ce n'était pas la bonne façon d'utiliser Dague. P>
AppComponent < / p> module d'application p> ActivityComponent p> ActivityModule p> application p> activité p> Je ne sais pas Si cela résout directement votre problème, il faut au moins une lumière sur la manière d'utiliser le dague correctement. P> espère qu'il aide. p> p>
J'ai eu le même problème sur ma configuration, Android Studio 2.2 dans la classe d'application suivante:
//Dagger 2 // apt command comes from the android-apt plugin apt 'com.google.dagger:dagger-compiler:2.7' compile 'com.google.dagger:dagger:2.7' provided 'javax.annotation:jsr250-api:1.0'
Il suffit d'ajouter @Module à la classe API et de reconstruire le projet. P>
Veuillez ajouter
apt 'com.google.dagger:dagger-compiler:2.x'
Configuration d'un projet autonome dans Android Studio 2.3, j'ai mis à jour les fichiers de gradle par défaut comme suit pour obtenir le fichier de composant généré. Les lignes ajoutées ont commenté // dagger2 addition code>
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt' // dagger2 addition
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.demo.dagger2demo"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
// dagger2 addition
compile 'com.google.dagger:dagger:2.+'
apt "com.google.dagger:dagger-compiler:2.+"
}
Cela m'a fait l'affaire avec les dépendances (actuelles) Dernières Dagger.
`dependencies{ ... compile 'com.google.dagger:dagger:2.11' compile 'com.google.dagger:dagger-android-support:2.11' annotationProcessor "com.google.dagger:dagger-compiler:2.11" }`
Solution parfaite. Pas besoin de modifier quoi que ce soit à l'exception de la version 2.11. Merci beaucoup.
Bon. Mais pourriez-vous expliquer plus? Merci:)
J'espère que vous allez tous bien. Je faisais face au même problème et j'ai passé beaucoup de temps sur la pile débordement. Enfin, je passe par Ceci et capable de trouver une solution. En bref, vous devez apporter des modifications dans votre fichier de gradle de niveau de module. Veuillez supprimer
en haut du fichier. Et remplacer p> avec p> Après cela reconstruisant votre projet et que vous pourrez importer vos classes de préfixes Dague. Hopw il vous aidera à sortir. P> p> Appliquer plugin: 'com.neenbedankt.android-apt' code> p>
Montrez votre code de votre composant.
Utilisez APT au lieu de compiler avec la dépendance du compilateur Dagger.
Si cela fonctionne avant et que cela ne fonctionne pas après avoir ajouté une injection, il y a probablement plus de sortie d'erreur. Si la génération échoue de Dagger ne verra pas de classes mais des descriptions d'erreur détaillées, vous devez prendre un autre coup d'oeil sur les erreurs après i> Impossible de trouver le symbole
Je reçois cette erreur après erreur: l'exécution a échoué pour la tâche ': App: Compiledebugjavawithjavac'. > La compilation a échoué; Voir la sortie d'erreur du compilateur pour plus de détails.
c'est très éteint puting et je veux vraiment utiliser Dagger 2. Quelle honte