转: 关于使用eventbus引发的NoClassDefFoundError问题解决方案

报错情况:java.lang.NoClassDefFoundError: org.greenrobot.eventbus.EventBusBuilder

环境描述:android studio 、API 18 、JDK1.8

问题原因:1、 没有注册或者创建EventBus初始化对象。

                  2、multidex问题。这是因为安卓5.0起MultiDex可以启用。对于设备和虚拟机运行5.0以前的API版本。 Multidex需要用不同的方式被激活。

解决方法:首先 让你的Application类继承MultiDexApplication而不是Application。

                   例如: 

 
  1. public class MyApplication extends MultiDexApplication....

  2. // use import android.support.multidex.MultiDexApplication;

    扫描二维码关注公众号,回复: 3022533 查看本文章

                  然后如果你不想改变你原有Oncreate()方法中的业务逻辑,那就加入这段代码

 
 
  1. @Override

  2. protected void attachBaseContext(Context base) {

  3. super.attachBaseContext(base);

  4. MultiDex.install(AppController.this);

  5. }

                  并在APP build.grdle文件中加入multidex的包

 
  1. compile 'com.android.support:multidex:1.0.1' //dependencies section

  2. multiDexEnabled true //in default config

                      之后clear或者rebuild一下项目。

猜你喜欢

转载自blog.csdn.net/u013519084/article/details/81359023
今日推荐