私はEclipseでビルドするために、Androidの依存性注入にDaggerを使用しています。私は一例としてandroid-activity-graphsをクローンしました。私はhttps://github.com/square/dagger/issues/126
からstaxgrに応じて自分の環境を設定したeclipseを使用して構築されたダガーの例が失敗しました。「このモジュールでコード生成が実行されたことを確認してください。
これらは私のLIBSは以下のとおりです。短剣-1.1.0.jar、短剣コンパイラ-1.1.0.jar、およびのjavax
そして最後に.inject.jar、私は、Eclipseがパッケージキーワードによって関連ファイルを検出するようにsrc/main/java
(だけではなくsrc/
)を指すようにEclipseのソースフォルダを変更しました。
プロジェクトがビルドしますが、それはこの例外で実行だとき、すぐに失敗します。
Caused by: java.lang.IllegalStateException:
Module adapter for class
com.example.dagger.activitygraphs.AndroidModule could not be loaded.
Please ensure that code generation was run for this module.
at dagger.internal.FailoverLoader.getModuleAdapter(FailoverLoader.java:41)
at dagger.internal.Modules.getAllModuleAdapters(Modules.java:43)
at dagger.ObjectGraph$DaggerObjectGraph.makeGraph(ObjectGraph.java:167)
at dagger.ObjectGraph$DaggerObjectGraph.access$000(ObjectGraph.java:134)
at dagger.ObjectGraph.create(ObjectGraph.java:126)
at com.example.dagger.activitygraphs.DemoApplication.onCreate(DemoApplication.java:29)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1000)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4391)
私はダガー例は日食を通じて仕事を得るにはどうすればよいですか?
あなたのソリューションを投稿していただきありがとうございます。私は、Eclipse(Kepler)にJavaコンパイラ - >ファクトリパスがないことに気付きました。代わりにJavaコンパイラ - >注釈処理 - >ファクトリパスがあります。あなたはケプラーを使っていますか?もしそうなら、Annotation Processingの設定を変更する必要がありましたか?私はあなたの指示に従いましたが、あなたが得ていたのと同じ例外があります。 –
ちょっとジュリアン、私は説明を更新しました。申し訳ありませんが、私は注釈処理部分を忘れました。 「プロジェクト固有の設定を有効にする」チェックボックスをオンにし、4つのライブラリをプロジェクトのホームディレクトリの「libs」フォルダに追加していることを確認できますか?また、これらのライブラリは「ファクトリパス」画面のリストに追加されていますか? – sudocoder
ありがとうございます。変更を加えて例外を取り除きました。しかし今、私は別のものを手に入れます。私は[別のSOの投稿を作成しました](http://stackoverflow.com/questions/20253373/dagger-setup-in-eclipse)。しかし、ここに例外メッセージがあります:内部コンパイラエラー:java.lang.NoSuchMethodError:com.squareup.javawriter.JavaWriter.beginType(Ljava/lang/String; Ljava/lang/String; ILjava/lang/String; [Ljava/lang/String;)Lam/squareup/javawriter/JavaWriter; dagger.internal.codegen.InjectAdapterProcessor.writeInjectAdapter(InjectAdapterProcessor.java:265)で " –