在早期的Android系统中,系统会把每一个类的方法id检索起来,存在一个链表结构里,而这个链表的长度是用一个short类型来保存的,导致方法id的数目不能够超过65536个。
-
方案一:在manifest文件中指定Application为MultiDexApplication,如下:
图片.png -
方案二:写一个Application类并继承MultiDexApplication,并在AndroidManifest.xml的application标签中进行注册(在application标签中增加name属性,并添加自己的Application类名即可),如果不是想重写MultiDexApplication中一些方法的话,还是方案一更方便些。如下:
图片.png
注册如下:
图片.png -
方案三:如果不想按方案二继承,我们可以重写Application的attachBaseContext方法,注意,这个方法比onCreate方法先执行。具体方法是创建一个新类,继承Application,然后重写attachBaseContext方法,并在AndroidManifest.xml的application标签中进行注册(与方案二注册相同)如下:
44.png
对于在AndroidManifest.xml中注册,与方案二的注册相同。
- 参考文章
https://www.cnblogs.com/chenxibobo/p/6076459.html



