在Android 4中使用Dagger 2找到java.lang.NoClassDef
我有一个使用Dagger 2的项目,我无法在Android 4+上运行该应用程序,它崩溃了。但在安卓5+上,它运行得很好。下面是我得到的错误:在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
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();
}
}