记一次使用GreenDao的小“坑”

很多Android开发者选择Greendao作为数据库使用工具,关于greendao的教程网络上也是一大堆,这里就不再介绍,主要是记录在项目中使用greendao出现的一个小问题,greendao的地址如下:greendao

事先说一下,我项目中使用的是greendao3.2.2

出现的主要问题是:NoClassDefFoundError 问题,具体的报错信息如下,这里是部分的,而且是从网络上找的,主要自己的那时候没记录,然后直接从网络上摘取部分。

java.lang.NoClassDefFoundError: org.greenrobot.greendao.query.WhereCollector
 at org.greenrobot.greendao.query.QueryBuilder.<init>(QueryBuilder.java:85) 
at org.greenrobot.greendao.query.QueryBuilder.internalCreate(QueryBuilder.java:73) 
at org.greenrobot.greendao.AbstractDao.queryBuilder(AbstractDao.java:793) 
at com.luckytry.luckylibrary.MyAplication.APPAplication.initData(APPAplication.java:132) 
at com.luckytry.luckylibrary.MyAplication.APPAplication.initDB(APPAplication.java:117) 
at com.luckytry.luckylibrary.MyAplication.APPAplication.onCreate(APPAplication.java:39) 
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1009) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4655) 
at android.app.ActivityThread.access$1800(ActivityThread.java:143) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1322) 
at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) 
at android.app.ActivityThread.main(ActivityThread.java:5356) at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:680) at dalvik.system.NativeStart.main(Native Method)

这个问题不同于ClassNotFond ,程序不会崩,但是就是没有数据,然后就是显示空白界面。从网络找的,很多都是添加如下的依赖:

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

然后自己的Application继承于android.support.multidex.MultiDexApplication,然后在清单文件中添加自己的Application,

接着是在Application 中实现如下:

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
       
    }

但是,实际运行之后发现,还是没有解决这个问题,还是报一样的错。

经过继续Google之后,找到了另外一种解决的办法,就是在项目中添加:

compile 'net.zetetic:android-database-sqlcipher:3.5.7'

这样发现能解决问题,所以在这里记录下。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,067评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,064评论 19 139
  • 一.榜单介绍 排行榜包括四大类: 单一框架:仅提供路由、网络层、UI层、通信层或其他单一功能的框架 混合开发框架:...
    伟子男阅读 10,636评论 0 161
  • 1月6日“湘潭31岁妈妈留下遗书带一双子女跳楼”,之后这则新闻刷遍了朋友圈。看到新闻,很心酸,眼泪在眼睛里不停的转...
    温暖妈咪阅读 3,954评论 0 1
  • ――如果我可以爱 消沉一周、颓废一周,除了备考的焦虑,便是用日以继夜的沉迷于电视剧中,麻醉自己。我是...
    箫音声声阅读 1,535评论 0 0

友情链接更多精彩内容