Création d'une application Android instantanée avec un composant d'application de Dagger

Je suis actuellement en train d'expérimenter avec InstantApps et j'aimerais inclure dagger dans mon projet.

Je suis confronté à un problème lors de la configuration d'une application AppComponent. Mon composant d'application inclut tous les modules de dague de la fonction de mon application.

J'ai essentiellement:

  • Module d'application One Base contenant ma classe Application
  • Plusieurs fonctionnalités avec chacun un dagger Module par activité, tous avec base comme dépendance.
  • Un module d'application et un module instantané importent toutes les fonctionnalités et le module d'application de base.

J'essaie de trouver l'installation avant d'ajouter le module de l'application instantanée.

À partir de la documentation InstantApps et des exemples de projets. Il semble que la classe d'application doit être dans Base. De la documentation Dagger, pour configurer le poignard:

DaggerYourAppComponent.create().inject(this); 

Devrait être inclus dans votre classe d'application. Cependant, cela semble être impossible car AppComponent doit faire référence à tous les modules de dague de fonctionnalité.

Mes questions sont les suivantes:

  • Où dois-je ajouter mon module Dagger AppComponent?
  • Dois-je conserver mon application dans le module de l'application et non dans Base?
  • Un compte de GitHub ou une documentation autour de Dagger avec des applications instantanées?

Je vous remercie

  • Dagger ne génère pas de composants pour / classe de test
  • Dagger 2 Nommé ne peut pas être fourni sans une méthode @Provides
  • Comment utiliser correctement Dagger2 avec les nouveaux composants d'architecture Android
  • Dagger 2 Build IllegalArgumentException compileDebugJavaWithJavac
  • Dagger 2 composants non générés lors de l'utilisation de Jack
  • Comment utiliser le qualificatif 2 @ Named de Dagger à Kotlin
  • Référence non résolue pour Dagger 2 à Kotlin
  • Dagger 2 - modules à partir de différents composants
  • One Solution collect form web for “Création d'une application Android instantanée avec un composant d'application de Dagger”

    • Dagger2 est très pris en charge par les applications instantanées. Vous pouvez créer des classes de composants pour chaque module de fonctionnalité et une classe de fournisseur Dagger correspondante pour exposer l'instance de classe de composant pour chaque module de fonctionnalité.
    • Chaque classe de composant de module peut déclarer des méthodes d'injection pour les classes contenues uniquement dans ce module de fonctionnalité.
    • En outre, vous pouvez également avoir une classe de composant Application dans le module de base pour une injection large d'application.
    • La classe de composant d'application peut être instanciée dans la classe Application incluse dans le module de base et exposée à d'autres modules de fonctionnalité via une méthode statique dans la classe d'application.

    Voici un exemple de code d'injection Dagger2 avec des applications instantanées pour rendre les choses plus claires. https://github.com/willowtreeapps/android-instant-apps-demo

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.