集成MultiDex后日志提示VM支持多DEX但库已禁用的问题咨询
关于MultiDex日志提示
VM has multidex support, MultiDex support library is disabled.的问题解析 我已在应用中集成MultiDex,运行应用时日志中出现VM has multidex support, MultiDex support library is disabled.的提示,但应用并未崩溃,可正常启动。
相关日志
13:06:07.146 MultiDex I VM with version 2.1.0 has multidex support 13:06:07.146 MultiDex I Installing application 13:06:07.147 MultiDex I VM has multidex support, MultiDex support library is disabled. 13:06:07.147 MultiDex I Installing application 13:06:07.147 MultiDex I VM has multidex support, MultiDex support library is disabled.
我的MultiDex集成步骤
- 启用MultiDex:
defaultConfig { applicationId "xx.xxxxxxxx" minSdk 29 targetSdk 33 versionName "1.0.24.1" versionCode 43 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled true }
- 添加依赖:
dependencies { implementation 'androidx.multidex:multidex:2.0.1' // Multidex }
- 创建Application类:
class BaseApp : MultiDexApplication(){ override fun attachBaseContext(base: Context?) { super.attachBaseContext(base) MultiDex.install(this) } override fun onCreate() { super.onCreate() "BaseApp=> onCreate()".toLog() } }
- 在AndroidManifest.xml中配置Application类:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="xx.xxxxxxxx"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <application android:name=".data.application.BaseApp" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:screenOrientation="portrait" android:supportsRtl="true" android:theme="@style/Theme.XXXXX" android:usesCleartextTraffic="true"> </application> </manifest>
问题解析与优化建议
这个日志提示是正常现象,无需担忧。原因在于你的minSdk设置为29,而Android 10(API 29)及以上版本的系统VM已经原生支持MultiDex,不需要依赖MultiDex支持库来实现。MultiDex库检测到系统VM具备原生多dex能力后,会自动禁用自身逻辑,因此输出该提示。
你的应用能正常启动说明一切工作正常,这个提示仅用于告知当前环境下无需使用MultiDex库的实现,系统已原生支持。
若要优化配置,可做以下调整:
- 移除
MultiDex.install(this)调用:MultiDexApplication在API21+环境中会自动跳过安装逻辑,手动调用属于冗余操作。 - 保留
multiDexEnabled true:这是Gradle编译时启用多dex打包的开关,与运行时支持库无关,必须保留才能生成多个dex文件。 - 按需引入依赖(可选):仅在minSdk <21时引入MultiDex库,减少不必要的依赖:
dependencies { if (project.android.defaultConfig.minSdkVersion < 21) { implementation 'androidx.multidex:multidex:2.0.1' } }
内容的提问来源于stack exchange,提问作者SHIDHIN TS
相关产品推荐
相关产品推荐

