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

标签 java android gradle noclassdeffounderror dagger-2

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

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

但是问题依然存在。我很确定不是因为 65K 方法限制 问题,因为我们在应用程序项目中启用了 multidex。我不确定我错过了什么,或者 Dagger2 可以这样使用吗?

最佳答案

原来我遗漏了 Dagger2 生成的类所需的另一个依赖项。 添加 编译'javax.inject:javax.inject:1'

到 gradle 文件,它工作正常。

关于java - 在 android 库项目中使用 Dagger2 在运行时抛出 `NoClassDefFoundError`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34485604/

相关文章:

java - 在gradle中将本地jar文件添加到项目的依赖项

java线程15分钟后不运行

android - Robolectric with Gradle:软件包org.robolectric不存在

android - 我在使Android Studio和gradle正常工作以将我的应用制作到android应用 bundle 时遇到麻烦

java - EditText.getText.toString() 返回空字符串

android - Android 中的动态深度链接

java - Gradle Android "Duplicate class foo found in module bar"错误

java - 软删除 : Child Entity not being deleted after Deleting parent Entity in @OneToMany relation in Spring Boot JPA Hibernate

java - 像 Uber 一样透明的操作栏和状态栏

java - 如何使用 libgdx 仅触摸屏幕左侧时创建监听器