配置方法数超过 64K 的应用
随着 Android 平台的持续成长,Android 应用的大小也在增加。当您的应用及其引用的库达到特定大小时,您会遇到构建错误,指明您的应用已达到 Android 应用构建架构的极限。早期版本的构建系统按如下方式报告这一错误:
规避 64K 限制
在将您的应用配置为支持使用 64K 或更多方法引用之前,您应该采取措施减少应用代码调用的引用总数,包括由您的应用代码或包含的库定义的方法。下列策略可帮助您避免达到 DEX 引用限制:
- 检查您的应用的直接和传递依赖项 - 确保您在应用中使用任何庞大依赖库所带来的好处大于为应用添加大量代码所带来的弊端。一种常见的反面模式是,仅仅为了使用几个实用方法就在应用中加入非常庞大的库。减少您的应用代码依赖项往往能够帮助您规避 dex 引用限制。
- 通过 ProGuard 移除未使用的代码 - 为您的版本构建启用代码压缩以运行 ProGuard。启用压缩可确保您交付的 APK 不含有未使用的代码。
使用这些技巧使您不必在应用中启用 Dalvik 可执行文件分包,同时还会减小 APK 的总体大小。
配置您的应用进行 Dalvik 可执行文件分包
将您的应用项目设置为使用 Dalvik 可执行文件分包配置需要对您的应用项目进行以下修改,具体取决于应用支持的最低 Android 版本。
如果您的
minSdkVersion
设置为 21 或更高值,您只需在模块级
build.gradle
文件中将
multiDexEnabled
设置为
true
,如此处所示:
minSdkVersion 21
targetSdkVersion 26
multiDexEnabled true
但是,如果您的
minSdkVersion
设置为 20 或更低值,则您必须按如下方式使用 Dalvik 可执行文件分包支持库:
修改模块级
build.gradle
文件以启用 Dalvik 可执行文件分包,并将 Dalvik 可执行文件分包库添加为依赖项,如此处所示:
android { {
defaultConfig {
minSdkVersion 15
targetSdkVersion 26
multiDexEnabled true compile 'com.android.support:multidex:1.0.3'