首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.NoClassDefFoundError: dagger.internal.Preconditions android dagger2

java.lang.NoClassDefFoundError: dagger.internal.Preconditions android dagger2
EN

Stack Overflow用户
提问于 2018-08-02 11:01:27
回答 1查看 2K关注 0票数 1

我正在两个项目之间切换使用构建风格。我正在使用dagger2和一个项目,但在切换另一个项目并试图运行它时,显示了以下错误:

代码语言:javascript
复制
java.lang.NoClassDefFoundError: dagger.internal.Preconditions
at common.di.DaggerAppComponent$Builder.appModule(DaggerAppComponent.java:35)

下面是我的gradle依赖性:

代码语言:javascript
复制
// Dependency Injection
    annotationProcessor 'com.google.dagger:dagger-compiler:2.14.1'
    implementation 'com.google.dagger:dagger:2.14.1'
    compileOnly 'javax.annotation:jsr250-api:1.0'

问题主要是当在appModule中添加AppComponent时。

代码语言:javascript
复制
private AppComponent createAppComponent() {

    return DaggerAppComponent.builder()
            .appModule(new AppModule(this)) //Problem is here
            .networkModule(new NetworkModule())
            .build();
}
EN

回答 1

Stack Overflow用户

发布于 2018-08-03 11:33:55

最后,我找到了根本原因。它基本上是API级别问题。对于低于21的android级别,您需要在build文件中添加以下依赖项。还将应用程序类更改为MultiDexApplication,如下所示:

在app build.gradle文件中:

代码语言:javascript
复制
Implementation 'com.android.support:multidex:1.0.3'

在您的BaseApplication中,将应用程序类改为MultiDexApplication

代码语言:javascript
复制
public class BaseApplication extends MultiDexApplication {
    @Override
    public void onCreate() {
        super.onCreate();
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51651998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档