2016-02-29 108 views
2

我有一個使用Dagger2的Android應用程序。我有一個名爲AppComponent的Dagger組件,一個名爲MainActivity的活動。 MainActivity有一個注入字段:@Inject MainDataModel mModel,並使用DaggerAppComponent.inject(mainActivity)來滿足該字段。我把組件的init代碼放在Application.onCreate()中。在運行期間,我在組件初始化期間遇到VerifyError在Android上使用Dagger2在某些設備上運行VerifyError

Fatal Exception: java.lang.VerifyError: com/myapp/a 
    at com.myapp.dagger.DaggerAppComponent.initialize(DaggerAppComponent.java:39) 
    at com.myapp.dagger.DaggerAppComponent.(DaggerAppComponent.java:29) 
    at com.myapp.dagger.DaggerAppComponent.(DaggerAppComponent.java:19) 
    at com.myapp.dagger.DaggerAppComponent$Builder.build(DaggerAppComponent.java:75) 
    at com.myapp.dagger.ComponentHolder.init(ComponentHolder.java:15) 
    at com.myapp.AppInitializer.init(AppInitializer.java:13) 
    at com.myapp.app.MyApp.onCreate(MyApp.java:341) 
    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1069) 
    at com.lbe.security.service.core.client.b.x.callApplicationOnCreate(Unknown Source) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4699) 
    at android.app.ActivityThread.access$1300(ActivityThread.java:171) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1447) 
    at android.os.Handler.dispatchMessage(Handler.java:107) 
    at android.os.Looper.loop(Looper.java:194) 
    at android.app.ActivityThread.main(ActivityThread.java:5433) 
    at java.lang.reflect.Method.invokeNative(Method.java) 
    at java.lang.reflect.Method.invoke(Method.java:525) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:853) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) 
    at dalvik.system.NativeStart.main(NativeStart.java) 

與映射文件檢查後,我發現導致VerifyError MSG的類是一個MainActivity_MembersInjector,它也是由匕首生成。

導致此問題的線路爲this.mainActivityMembersInjector = MainActivity_MembersInjector_MembersInjector.create(MembersInjectors.noOp(), this.mainDataModelProvider);DaggerAppComponent

有一件事不是它只發生在某些設備上,但像小米2014011.任何想法如何解決這個問題?

+0

你有關於這個問題的消息嗎? –

回答

1

您是否已將multiDex啓用到您的build.gradle配置中?

+0

是,啓用multiDex。 –

+0

嘗試不使用multiDex並讓我知道您是否仍然遇到此問題。同時你可以在這裏看看,問題與Dagger1有關,但可能它也會影響Dagger2:http://stackoverflow.com/questions/31773884/verifyerror-in-multidex-app-when-injecting-dependency-with-匕首 –

相關問題