java.lang.IncompatibleClassChangeError
2017-12-28 13:57
2546 查看
java.lang.IncompatibleClassChangeError: The method 'com.ckw.zfsoft.ckwapparchitecture.modules.secondmodule.CupFragment com.ckw.zfsoft.ckwapparchitecture.modules.secondmodule.CupFragment.newInstance()' was expected to be of type static but instead was found to be of type virtual (declaration of 'com.ckw.zfsoft.ckwapparchitecture.home.HomeActivity' appears in /data/app/com.ckw.zfsoft.ckwapparchitecture-2/split_lib_slice_6_apk.apk)
发生错误的场景:
项目里使用了MVP+Dagger2,在实例化Fragment的时候,我还是使用了原本的实例方法:
public static HeartFragment newInstance() { Bundle args = new Bundle(); HeartFragment fragment = new HeartFragment(); fragment.setArguments(args); return fragment; }
在Activity中使用:
mHeartFragment = HeartFragment.newInstance();
然后就出现了上述的错误。
解决方法:
不适用newInstance方法,而应该采用依赖注入的方式:
首先在Fragment所在的ActivityModule中:
@FragmentScoped @ContributesAndroidInjector abstract HeartFragment heartFragment();
接着在Activity中注入这个Fragment:
@Inject HeartFragment getHeartF 4000 ragment;
最后在需要使用的地方:
mHeartFragment = getHeartFragment;
最后不要忘了将Fragment中通过快捷键生成的newInstance方法代码删除!
相关文章推荐
- java错误:java.lang.IncompatibleClassChangeError: Implementing class
- Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class com.squareup.okhttp.C
- Exception in thread “main” java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop
- 解决java.lang.IncompatibleClassChangeError
- POI操作Excel出错:java.lang.IncompatibleClassChangeError
- 异常:Error: java.lang.IncompatibleClassChangeError: Implementing class
- 【JUnit 报错】java.lang.IncompatibleClassChangeError
- java.lang.IncompatibleClassChangeError这是什么错误呀,拜托啦
- Caused by: java.lang.IncompatibleClassChangeError: Implementing class
- java.lang.IncompatibleClassChangeError: Implementing class的解决办法,折腾了一天总算解决了
- java.lang.IncompatibleClassChangeError
- 解决java.lang.IncompatibleClassChangeError
- jfina定时任务启动报 java.lang.IncompatibleClassChangeError: Implementing class
- [ERROR] Terminal initialization failed; falling back to unsupported java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
- 关于Spring低于3.2版本升级到3.2报java.lang.IncompatibleClassChangeError异常的解决方法
- java.lang.IncompatibleClassChangeError
- hive遇到的问题java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expec
- java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.SimpleTriggerBea
- Hibernate3.5却报异常 java.lang.IncompatibleClassChangeError: class org.hibernate.cfg.ExtendedMappings has interface
- java.lang.IncompatibleClassChangeError: Implementing class异常解决方法