Plugin
https://github.com/eyyoung/DexFixPlugin
主包过大起因
官方MultiDex在分包过程中会分析Application依赖的类,并认为Application依赖的类需要放入主包中,否则由于非主包中的类未加载,将触发Class Not Found Exception.
但当Application依赖的类过多的时候,会导致主包过大,引发打包失败,抛出"Too many classes in –main-dex-list"
官方MultiDex不仅分析Application直接依赖类,也会分析AndroidManifest中存在的Activity,Service等依赖的类,此操作非必要,但更容易引发"Too many classes in –main-dex-list".
相关源码
相关原理
通过注入additionalParameters参数,指定maindexlist,maindexlist通过MainDexListBuilder类生成,MainDexListBuilder可通过Proguard规则生成
网友评论