使用gradle开启multiDex时,如何配置MainDex

本文介绍在Android应用中如何通过配置multiDexKeep.pro和multiDexKeep.txt文件来指定特定类放入MainDex中。这对于确保应用程序关键组件能够正常运行至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开启multiDex时,多个dex文件中的类是被gradle脚本分配的,而且app在启动时,首先加载的是MainDex。有时候我们需要设定某些类被放到MainDex中,如何设定?

在build.gradle中开启multiDex,并指定配置文件

multiDexEnabled true
multiDexKeepProguard file('multiDexKeep.pro') // keep specific classes using proguard syntax
multiDexKeepFile file('multiDexKeep.txt') // keep specific classes

配置multiDexKeep.pro文件(语法和proguard-rules.pro一样,作用也是混淆相关)

#system相关
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
   public *;
}

配置multiDexKeep.txt文件,指定类即可

com.simen.tt.Helper.class
com.simen.tt.Utils.class
com.simen.tt.Over$M.class



在最新版的Android Studio中,如果你需要处理应用中超过65K方法数的限制(即单dex文件大小上限),可以添加多Dex支持(Multidex)。以下是步骤: 1. **打开项目设置**: 打开项目结构 (Project Structure) 或者右键点击 `app` 根目录,选择 "Structure" -> "App Modules"。 2. **进入模块配置**: 在打开的模块配置窗口中,找到 "Modules" 部分,选择 "app",然后点击 "+" 号,在 "Dependencies" 区域下方添加 "Library Dependency"。 3. **搜索并选择Multidex库**: 在弹出的搜索框里输入 "Multidex",从搜索结果中找到 "androidx.multidex:multidex" 或 "com.android.support:multidex" (取决于你是否使用了AndroidX),选中它并添加到 "Implementation" 或 "Compile" 部分。 4. **配置MultiDexApplication**: 在 `app/src/main/java/your_package_name/App.java` 文件中(假设为`YourAppNameActivity extends AppCompatActivity`),将`AppCompatActivity`替换为`MultiDexApplication`提供的子类,例如`MultiDexApplicationCompat`。 5. **更新build.gradle**(Module: app): 添加 Multidex 插件,并配置 multidexEnabled 为 true: ```groovy apply plugin: 'com.android.application' // ... defaultConfig { multiDexEnabled true } // ... dependencies { implementation 'androidx.multidex:multidex:2.0.1' // 或者 com.android.support:multidex // 其他应用依赖 } ``` 6. **运行启动MultiDex**: 在你的主入口 Activity 中,加入 MultiDex 的初始化代码,通常在 `onCreate()` 方法之前: ```java if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { MultiDex.install(this); } super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ``` 完成以上步骤后,你的应用就可以利用多Dex功能了。记得检查 Gradle 构建过程是否有错误,以及在设备上测试应用性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值