Square Dagger IllegalStateException: Moduladapter für Klasse MyApplicationModule konnte nicht geladen werden

Ich benutze Eclipse und Dagger 1.2.2 für mein Android-Projekt. Ich habe es geschafft, eine Testanwendung mit Dagger zu implementieren. Aber mit meiner "echten" Anwendung bekomme ich:

Java.lang.RuntimeException: Applikation kann nicht app.MyApplication: java.lang.IllegalStateException: Moduladapter für Klasse app.MyApplicationModule konnte nicht geladen werden. Bitte stellen Sie sicher, dass die Codegenerierung für dieses Modul durchgeführt wurde. :

  • Methode Injektion mit Dolch 2
  • Dolch kann kein Typ-Parameterfeld einspritzen
  • Android Dagger Dependency Injection schlägt auf privaten Feldern fehl
  • Singletons im Dolch 1.x
  • Dolch 2 Umfang und Unterkomponenten
  • Dolch 2 Singletons nicht funktioniert
  • 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 

    Dies ist 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; } } 

    Das ist mein 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> 

    Ich habe auch die Dolch-Gläser auf den Baustellenpfad und den Fabrikpfad eingeschlossen.

  • Wie kann ich die Eigentumslängenbegrenzung der "adb shell setprop" überwinden?
  • Ist es eine schlechte Idee, printStackTrace () in Android Ausnahmen zu verwenden?
  • Eclipse - Android nicht automatisch generieren R Klasse
  • Verwenden von Global Exception Handling auf Android
  • Spielen von BG Musik über Aktivitäten in Android
  • @Named Provider mit gleichen Return-Typen am Ende geben java.lang.IllegalArgumentException: Duplizieren
  • 4 Solutions collect form web for “Square Dagger IllegalStateException: Moduladapter für Klasse MyApplicationModule konnte nicht geladen werden”

    Für jedermann, das dieses Problem gehabt haben könnte, wie ich tat. Das Problem, das ich vor war, ist, dass ich nicht hinzufügen, eine Abhängigkeit in meinem Gradle Build-Datei zu erlauben Dolch zu Code-Generierung ontop meiner Klassen zu tun:

    Füge das hinzu:

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

    Update: Wenn du nicht weißt, wo das apt Plugin ist, kannst du es in deinem Projekt installieren. Meine Abhängigkeiten sehen so aus:

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

    Ich habe meinen Fehler gefunden:

    Sie müssen " Projektspezifische Einstellungen aktivieren " für "Java Compiler" und "Annotation Processing" aktivieren. Jetzt meine Anwendung wirft eine Menge anderer Fehler, aber die Dagger Code Generation Zeug funktioniert!

    Wenn Sie multiDex verwenden, vergessen Sie nicht, es in YourApp.class zu aktivieren

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

    Das hat mein ähnliches Problem gelöst.

    Projekt 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 } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.