GreenDao 解决5.0以下报错问题

来源:互联网 发布:软件成本估算模型 编辑:程序博客网 时间:2024/05/02 23:26

在greendao使用的时候大家可能都会遇到过版本兼容问题,就是我们在使用GreenDao数据库的时候会发现,在android5.0以上的系统版本,没什么问题,我们可以正常运行,这也没问题,但是在android5.0一下版本就会报错。

java.lang.NoClassDefFoundError: org.greenrobot.greendao.database.StandardDatabaseat org.greenrobot.greendao.database.DatabaseOpenHelper.wrap(DatabaseOpenHelper.java:70)......

解决办法
引入一个包:

 compile 'com.android.support:multidex:1.0.1'

如果你的工程中已经含有Application类,那么让它继承android.support.multidex.MultiDexApplication类,

/** * Created by jian on 2017/2/2. */public class App extends MultiDexApplication {    public static final boolean ENCRYPTED = true;    private static DaoSession daoSession;    @Override    protected void attachBaseContext(Context base) {        super.attachBaseContext(base);        MultiDex.install(this);        //先执行上面代码再执行初始化        initDatabase();    }    @Override    public void onCreate() {        super.onCreate();    }  private void initDatabase(){  DaoMaster.DevOpenHelper helper = new  DaoMaster.DevOpenHelper(this, ENCRYPTED ? "users-db-encrypted" : "myusers-db");        Database db =  helper.getWritableDb();        daoSession = new DaoMaster(db).newSession();        DataManager dataManager = new  DataManager(); }}

这样就可以解决5.0以下报错问题了。

至于为什么会出现这种问题,是因为android4.4有分包机制,
大家可以看下面这篇文章,讲得很好:
Android 使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚

GreenDao3的使用请看这个博客:
GreenDao3.2的基本使用

阅读全文
1 0
原创粉丝点击