dir*_*ter 7 eclipse android dagger
我尝试运行我的应用程序时收到此错误:
E/AndroidRuntime(2314): java.lang.RuntimeException:
Unable to create application in.mubble.billbytwo.GlobalApp:
java.lang.IllegalStateException: Module adapter for class
in.mubble.billbytwo.RootModule could not be loaded.
Please ensure that code generation was run for this module.
Run Code Online (Sandbox Code Playgroud)
我想我正在使用基于Ant的构建系统我不确定,这是我的第一个dagger项目,我在Eclipse IDE上.
PS:我已经尝试过将java-writer和dagger-compiler添加到工厂路径,因为其他一些帖子建议但没有运气.
这是一个完整的堆栈跟踪:
FATAL EXCEPTION: main
Process: in.mubble.billbytwo, PID: 2314
java.lang.RuntimeException:
Unable to create application in.mubble.billbytwo.GlobalApp:
java.lang.IllegalStateException: Module adapter for class
in.mubble.billbytwo.RootModule could not be loaded.
Please ensure that code generation was run for this module.
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4347)
at android.app.ActivityThread.access$1500(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller
.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException:
Module adapter for class
in.mubble.billbytwo.RootModule 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 in.mubble.billbytwo.Injector.init(Injector.java:13)
at in.mubble.billbytwo.Injector.init(Injector.java:24)
at in.mubble.billbytwo.GlobalApp.onCreate(GlobalApp.java:67)
at android.app.Instrumentation
.callApplicationOnCreate(Instrumentation.java:1007)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4344)
Run Code Online (Sandbox Code Playgroud)
请帮助解决此问题.
确定代码生成正在发生是很重要的。检查您的构建目录以确保实际生成了此类。我没有将 Ant 与 Dagger 一起使用,但可以肯定的是,您需要确保 dagger-compiler-${version}.jar 可用于 javac,因此请检查您的类文件夹并查看是否正在生成代码。如果没有,则是构建配置问题。
如果是,那么您需要检查您的 proguard 配置并确保它保留了从 ModuleAdapter 和 Binding 继承的任何内容。这很重要,因为 Dagger 1.x 动态加载适配器,因此代码中没有静态依赖项可以通知 Proguard 不理会它。所以有可能 Proguard 只是简单地删除了适配器代码,因此 Dagger 无法加载它。
(注意,此问题将在 Dagger 2 中消除)