Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Square Dagger IllegalStateException: No se pudo cargar el adaptador de módulo para la clase MyApplicationModule

Estoy usando eclipse y Dagger 1.2.2 para mi proyecto de Android. Logré implementar una aplicación de prueba con Dagger. Pero con mi aplicación "real" consigo:

Java.lang.RuntimeException: No se puede crear la aplicación app.MyApplication: java.lang.IllegalStateException: No se pudo cargar el adaptador de módulo para la clase app.MyApplicationModule. Asegúrese de que se ha generado código para este módulo. :

FATAL EXCEPTION: main java.lang.RuntimeException: Unable to create application app.MyApplication: java.lang.IllegalStateException: Module adapter for class app.MyApplicationModule could not be loaded. Please ensure that code generation was run for this module. at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4687) at android.app.ActivityThread.access$1400(ActivityThread.java:159) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1376) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5419) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalStateException: Module adapter for class app.MyApplicationModule could not be loaded. Please ensure that code generation was run for this module. at dagger.internal.FailoverLoader$1.create(FailoverLoader.java:45) at dagger.internal.FailoverLoader$1.create(FailoverLoader.java:40) at dagger.internal.Memoizer.get(Memoizer.java:56) at dagger.internal.FailoverLoader.getModuleAdapter(FailoverLoader.java:57) at dagger.internal.Modules.loadModules(Modules.java:43) at dagger.ObjectGraph$DaggerObjectGraph.makeGraph(ObjectGraph.java:174) at dagger.ObjectGraph$DaggerObjectGraph.access$000(ObjectGraph.java:138) at dagger.ObjectGraph.create(ObjectGraph.java:129) at app.MyApplication.onCreate(MyApplication.java:17) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4684) ... 10 more 

Se trata de MyApplication.java :

 public class MyApplication extends Application implements InjectableApplication { private ObjectGraph objectGraph; @Override public void onCreate() { super.onCreate(); objectGraph = ObjectGraph.create(new MyApplicationModule(this)); objectGraph.inject(this); } @Override public void inject(Object o) { objectGraph.inject(o); } public ObjectGraph getObjectGraph() { return objectGraph; } } 

Este es mi AndroidManifest.xml :

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="app" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" android:name="app.MyApplication" > <activity android:name="app.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 

También incluí los tarros de la daga a la trayectoria de la estructura ya la trayectoria de la fábrica.

  • Dagger no puede encontrar miembros inyectables en un módulo
  • Singletons en Dagger 1.x
  • Bean and EBean conception Anotaciones para Android
  • Ampliación de ObjectGraph con módulo de sustitución
  • Dagger y inyecciones anidadas
  • Dagger para Android: Inyección de una actividad en el gráfico de objetos después de llamar a setContentView
  • Inyección de clase genérica con Dagger
  • ¿Se puede utilizar Spring Framework en aplicaciones android?
  • 4 Solutions collect form web for “Square Dagger IllegalStateException: No se pudo cargar el adaptador de módulo para la clase MyApplicationModule”

    Para cualquier persona que podría haber tenido este problema como lo hice. La edición que estaba haciendo frente es que no agregué una dependencia en mi archivo de la estructura del gradle para permitir que la daga haga la generación de código ontop de mis clases:

    Agrega esto:

     apt 'com.squareup.dagger:dagger-compiler:1.2.2' 

    Actualización: si no sabe dónde está el complemento apt, puede instalarlo en su archivo gradle de proyectos. Mis dependencias tienen este aspecto:

     dependencies { classpath 'com.android.tools.build:gradle:1.0.0' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4+' } 

    Encontré mi error:

    Debe comprobar " Habilitar configuración específica del proyecto " para "Compilador de Java" y "Procesamiento de anotación". Ahora mi aplicación lanza muchos otros errores, pero el trabajo de generación de código Dagger funciona!

    Si utiliza multiDex, no olvide activarlo en YourApp.class

      @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } 

    Eso resolvió mi problema similar.

    Proyecto build.gradle:

     // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:1.5.0' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4+' } } allprojects { repositories { jcenter() } } 

    App build.gradle:

     buildscript { repositories { mavenCentral() ... } ... } ... apply plugin: 'com.android.application' apply plugin: 'android-apt' ... dependencies { ... compile 'com.squareup.dagger:dagger:1.2.2' provided 'com.squareup.dagger:dagger-compiler:1.2.2' apt 'com.squareup.dagger:dagger-compiler:1.2.2' ... } configurations { provided } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.