当应用程序包含太多的方法(超过65,536个),在构建过程中就会出现Dex宣导失败的问题。这时候需要使用multi-Dex来避免这个问题。
android{ defaultConfig { ... multiDexEnabled true } ... }
dependencies { implementation 'com.android.support:multidex:1.0.3' }
2.添加multiDexKeepFile,维护一份保留的文件或目录列表,使得在应用启动时仅预测的类被加载。
android { defaultConfig { ... multiDexEnabled true multiDexKeepFile file('multidex-config.txt') } }
3.在manifest文件中设置multi-Dex启动应用:
如果没有继承Application的类,在此处继承MultiDexApplication即可。
4.如果存在有自定义Application对象,可以重写attachBaseContext,完成Multi-Dex的初始化。
public class MyApplication extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } ... }
以上就是解决Android多dex运行时问题的完整步骤。