【问题标题】:Dagger, code generation issues for android API < 21Dagger,android API < 21 的代码生成问题
【发布时间】:2015-07-20 11:27:27
【问题描述】:

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

检测到问题。

  • 当我启动应用程序时,我看到一些“找不到类”类型的错误。这些错误只发生在android api版本

    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

【问题讨论】:

    标签: android dependency-injection dagger


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-19
      • 1970-01-01
      • 1970-01-01
      • 2016-11-22
      • 1970-01-01
      • 1970-01-01
      • 2018-04-23
      相关资源
      最近更新 更多