Dagger,Android API的代码生成问题< 21

时间:2015-07-20 11:27:28

标签: android dependency-injection dagger

我正在使用匕首进行依赖注入。到目前为止,我一直在构建我的应用程序并使用android Lollipop进行测试。当我尝试在较低的android api中运行应用程序时,应用程序崩溃。

检测到问题。

  • 当我启动应用程序时,我看到一些类型为“找不到类”的错误。这些错误只发生在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

1 个答案:

答案 0 :(得分:3)

这是启用multidex的问题。通过在我的Application类中添加以下行来修复

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}