我有一個使用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.任何想法如何解決這個問題?
你有關於這個問題的消息嗎? –