Dagger,android API < 21 的代码生成问题
Dagger, code generation issues for android API < 21
我正在使用 dagger 进行依赖注入。到目前为止,我一直在构建我的应用程序并使用 android Lollipop 对其进行测试。当我尝试 运行 较低 android api 的应用程序时,应用程序崩溃了。
检测到问题。
当我启动应用程序时,我看到了一些 'Could not find class' 类型的错误。这些错误仅发生在 android api 版本 < 21.
10882-10882/? E/dalvikvm﹕ Could not find class 'com.app.android.misc.EndpointException', referenced from method com.app.android.modules.ApiModule.provideEndpoint
07-20 10:45:48.916 10882-10882/? E/dalvikvm﹕ Could not find class 'com.app.android.api.endpoints.EndpointRelease', referenced from method com.app.android.modules.ApiModule.provideEndpoint
07-20 10:45:48.920 10882-10882/? E/dalvikvm﹕ Could not find class 'com.app.android.api.endpoints.EndpointStage', referenced from method com.app.android.modules.ApiModule.provideEndpoint
07-20 10:45:48.920 10882-10882/? E/dalvikvm﹕ Could not find class 'com.app.android.api.endpoints.EndpointDev', referenced from method com.app.android.modules.ApiModule.provideEndpoint
07-20 10:45:48.924 10882-10882/? E/dalvikvm﹕ Could not find class 'com.app.android.api.ApiRequestInterceptor', referenced from method com.app.android.modules.ApiModule.provideInterceptor
然后应用程序崩溃并出现以下错误:
07-20 10:45:48.940 10882-10882/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.app.android, PID: 10882
java.lang.RuntimeException: Unable to create application com.app.android.IPApplication: java.lang.IllegalStateException: Module adapter for class com.app.android.modules.AppModule could not be loaded.
Caused by: java.lang.IllegalStateException: Module adapter for class com.inperson.android.modules.AppModule could not be loaded. Please ensure that code generation was run for this module.
- 应用程序崩溃后也出现此错误,但我不确定是否相关:
07-20 10:45:56.284 15671-15687/system_process E/WindowManager﹕ Starting window AppWindowToken{529c2338 token=Token{52a91a78 ActivityRecord{529ee900 u0 com.app.android/.InitActivity t8}}} timed out
这是启用 multidex 的问题。通过在我的应用程序 class
中添加以下行来修复
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
我正在使用 dagger 进行依赖注入。到目前为止,我一直在构建我的应用程序并使用 android Lollipop 对其进行测试。当我尝试 运行 较低 android api 的应用程序时,应用程序崩溃了。
检测到问题。
当我启动应用程序时,我看到了一些 'Could not find class' 类型的错误。这些错误仅发生在 android api 版本 < 21.
10882-10882/? E/dalvikvm﹕ Could not find class 'com.app.android.misc.EndpointException', referenced from method com.app.android.modules.ApiModule.provideEndpoint 07-20 10:45:48.916 10882-10882/? E/dalvikvm﹕ Could not find class 'com.app.android.api.endpoints.EndpointRelease', referenced from method com.app.android.modules.ApiModule.provideEndpoint 07-20 10:45:48.920 10882-10882/? E/dalvikvm﹕ Could not find class 'com.app.android.api.endpoints.EndpointStage', referenced from method com.app.android.modules.ApiModule.provideEndpoint 07-20 10:45:48.920 10882-10882/? E/dalvikvm﹕ Could not find class 'com.app.android.api.endpoints.EndpointDev', referenced from method com.app.android.modules.ApiModule.provideEndpoint 07-20 10:45:48.924 10882-10882/? E/dalvikvm﹕ Could not find class 'com.app.android.api.ApiRequestInterceptor', referenced from method com.app.android.modules.ApiModule.provideInterceptor
然后应用程序崩溃并出现以下错误:
07-20 10:45:48.940 10882-10882/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.app.android, PID: 10882
java.lang.RuntimeException: Unable to create application com.app.android.IPApplication: java.lang.IllegalStateException: Module adapter for class com.app.android.modules.AppModule could not be loaded.
Caused by: java.lang.IllegalStateException: Module adapter for class com.inperson.android.modules.AppModule could not be loaded. Please ensure that code generation was run for this module.
- 应用程序崩溃后也出现此错误,但我不确定是否相关:
07-20 10:45:56.284 15671-15687/system_process E/WindowManager﹕ Starting window AppWindowToken{529c2338 token=Token{52a91a78 ActivityRecord{529ee900 u0 com.app.android/.InitActivity t8}}} timed out
这是启用 multidex 的问题。通过在我的应用程序 class
中添加以下行来修复@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}