在android库项目中使用Dagger2会在运行时抛出`NoClassDefFoundError`

时间:2015-12-27 22:36:10

标签: java android gradle noclassdeffounderror dagger-2

我在我的一个Android库中使用了dagger2。完成库项目后,我使用gradle uploadArchive将aar上传到maven repo。然后在app项目中使用compile group:artifect:version@aar语法来使用库项目。我在构建应用程序时没有问题,但在运行时,它会为生成我的Dagger2的类NoClassDefFoundError抛出MyModule_ProvideAppFactory。我认为这个类是为方法@Provides public Application provideApp()生成的。然而,生成的DaggerMyComponent可以在运行时找到,因为异常发生在DaggerMyComponent类中。 我甚至在app项目中包含了以下依赖项

compile 'com.google.dagger:dagger:2.0'
compile 'javax.annotation:jsr250-api:1.0'

然而问题仍然存在。我很确定不是因为65K method limits问题,因为我们在应用项目中启用了multidex。我不确定我错过了什么,或者Dagger2可以这样使用?

1 个答案:

答案 0 :(得分:2)

原来我错过了Dagger2生成的类所需的另一个依赖项。 加 compile 'javax.inject:javax.inject:1'

到gradle文件,它工作正常。

相关问题