在Android 4中使用Dagger 2找到java.lang.NoClassDef

在Android 4中使用Dagger 2找到java.lang.NoClassDef,android,dagger-2,Android,Dagger 2,我有一个使用Dagger 2的项目,我无法在Android 4+上运行该应用程序,它崩溃了。但在安卓5+上,它运行得很好。下面是我得到的错误: 08-05 05:03:38.076 25444-25444/app.xqute.com.xqute E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: app.xqute.com.xqute, PID: 25444 java.lang.NoClassDefFoundError: app.xqute.com

我有一个使用Dagger 2的项目,我无法在Android 4+上运行该应用程序,它崩溃了。但在安卓5+上,它运行得很好。下面是我得到的错误:

08-05 05:03:38.076  25444-25444/app.xqute.com.xqute E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: app.xqute.com.xqute, PID: 25444
java.lang.NoClassDefFoundError: app.xqute.com.xqute.AppModule_ProvideProfileFactory
        at app.xqute.com.xqute.DaggerApp_AppComponent.initialize(DaggerApp_AppComponent.java:58)
        at app.xqute.com.xqute.DaggerApp_AppComponent.<init>(DaggerApp_AppComponent.java:50)
        at app.xqute.com.xqute.DaggerApp_AppComponent.<init>(DaggerApp_AppComponent.java:35)
        at app.xqute.com.xqute.DaggerApp_AppComponent$Builder.build(DaggerApp_AppComponent.java:151)
        at app.xqute.com.xqute.App.onCreate(App.java:63)
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4328)
        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:5001)
        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:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
        at dalvik.system.NativeStart.main(Native Method)

你知道为什么它适用于Android 5+而不适用于Android 4+吗

对于低于21的androidAPI级别您需要在build gradle文件中添加以下依赖项,并需要将应用程序类更改为MultiDexApplication,如下所示:

应用内build.gradle文件:

Implementation 'com.android.support:multidex:1.0.3'
在BaseApplication中,将应用程序类更改为
MultiDexApplication

public class BaseApplication extends MultiDexApplication {
    @Override
    public void onCreate() {
        super.onCreate();
    }
}

我用这个答案解决了这个问题:[为什么我仍然得到java.lang.NoClassDefFoundError:android.support.v7.appcompat.R$attr?][1][1]:
public class BaseApplication extends MultiDexApplication {
    @Override
    public void onCreate() {
        super.onCreate();
    }
}