greenDao3.0+gradle3.0.1 NoClassDefFoundError

今天,不堪android studio升级提示的持续骚扰,终于屈服了~~ 我将com.android.tools.build:gradle升级到了3.0.1;

随之而来的`distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip`也需要升级到4.1.

本以为这样就结束了,但是....在编译运行项目代码的时候,出现了这个错误:
No pending exception expected: java.lang.NoClassDefFoundError: org.greenrobot.greendao.database.DatabaseOpenHelper$EncryptedHelper
12-25 11:02:03.203 16990-16990/com.rencarehealth.mirhythm A/art: art/runtime/thread.cc:1336]   at java.lang.Class dalvik.system.DexFile.defineClassNative(java.lang.String, java.lang.ClassLoader, java.lang.Object) (DexFile.java:-2)
12-25 11:02:03.203 16990-16990/com.rencarehealth.mirhythm A/art: art/runtime/thread.cc:1336]   at java.lang.Class dalvik.system.DexFile.defineClass(java.lang.String, java.lang.ClassLoader, java.lang.Object, java.util.List) (DexFile.java:226)
12-25 11:02:03.203 16990-16990/com.rencarehealth.mirhythm A/art: art/runtime/thread.cc:1336]   at java.lang.Class dalvik.system.DexFile.loadClassBinaryName(java.lang.String, java.lang.ClassLoader, java.util.List) (DexFile.java:219)
12-25 11:02:03.203 16990-16990/com.rencarehealth.mirhythm A/art: art/runtime/thread.cc:1336]   at java.lang.Class dalvik.system.DexPathList.findClass(java.lang.String, java.util.List) (DexPathList.java:338)
12-25 11:02:03.204 16990-16990/com.rencarehealth.mirhythm A/art: art/runtime/thread.cc:1336]   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:54)
12-25 11:02:03.204 16990-16990/com.rencarehealth.mirhythm A/art: art/runtime/thread.cc:1336]   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511)
12-25 11:02:03.204 16990-16990/com.rencarehealth.mirhythm A/art: art/runtime/thread.cc:1336]   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469)
项目也启动不了。。。把gradle恢复到之前的版本,又没有问题了...我的内心是崩溃的。如果继续用以前的版本,又会天天蹦出来升级提示(虽然这个提示可以关闭),所以还是认真想想办法,解决这个问题吧。。

看问题的提示,是DexFile的问题,于是一直在这个`com.android.support:multidex:1.0.0`以及application中的Multidex中尝试解决问题,但是一直搞不定这个问题。

后来再继续查找解决方法,发现这个文章文章中说明了这个问题

http://www.jincanshen.com/2016/10/29/Android-greendao3-0/

于是按照这篇文章的解决方法,在app的gradle中增加加密库的依赖:
compile 'net.zetetic:android-database-sqlcipher:3.5.2'
问题还真解决了!~~ 什么情况!

文章中说明了,“greenDao3.0支持加密 在3.0.1进行了合并”,我这个greendao命名已经是3.2.0版本了,为什么还需要引入这个加密库呢。!~

再继续查阅吧~到greendao的官网看看吧

这里写图片描述

从这里看到,greendao只是support了SQLClipher加密库,但并没有合并额!~ 好吧~原来问题在这里,还是老老实实的把加密库加上吧!~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值