友盟 NoClassDefFoundError: com.umeng.analytics.d 导致5.0以下app崩溃的问题

如题,此问题是由于在build.gradle中配置了分包,就是multiDexEnabled true,三种解决方案:


1、不配置分包(这个好像不太可能,既然配置了肯定是超了65535)


2、自定义的application不要继承Application,而是继承MultiDexApplication。


3、仍然继承Application,然后复写Application的onCreate()方法,在该方法中执行MultiDex.install(this);


感谢:http://bbs.umeng.com/thread-13995-1-1.html

http://blog.csdn.net/u010381752/article/details/50715854


这是一个很容易就误入歧途的问题,这个问题在你开启multiDexEnabled 之前并不会出现。当无意中开启以后,之前运行的代码突然就报错了,然后各种找不着北。如果用了友盟统计,然后出现增加某些代码正确,可以在5.0以上系统运行的页面,但是切换到5.0以下系统以后却出现后台线程崩溃报错的时候不妨看看是否是这个问题导致的。本人就因为这个断断续续被折磨了半个月,当时出错的时候并没有直接报友盟错误,10次崩溃会有1,2次报友盟错误,其余的都是各种莫名其妙的进程崩溃错误。知道最近又追加了新的页面,这个错误一下子就变得无法调和了,启动的时候直接崩溃,经过多番查找,才找到这个问题所在。之前通过版本控制,回溯几天前的版本5.0以下系统竟然能正常运作,multiDexEnabled 也自然是开了的,所以自以为是当日更新的代码有比较隐秘的内存泄漏之类的错误。但是来回折腾发现代码并没有逻辑上的问题,可是只要一把代码添加上就崩溃,实在是逼疯的节奏。


总结经验就是,5.0以上运行正常,以下就运行错误,务必要看看这类插件是否会导致这个问题,遇到提示错误,务必沉住气,好好找找看!有时候第一感觉……会让你走入死胡同!不要作死啊!

你可能感兴趣的:(android)