当min sdk为5.0以下时启用multidex创建singledex 但是当min sdk为5.0及以上时,它会创建多个dex文件。
重现的步骤:
appcompat
和RecyclerView库将min sdk设置为14并构建项目
输出:将在构建文件夹
将min sdk设置为21并构建项目
输出:将在构建文件夹
在5.0及以上版本达不到64k限制时,有没有办法避免创建多个dex?
答案 0 :(得分:0)
您需要禁用InstantRun以禁用multidex,因为如果您的最小sdk设置为21或更高,则会自动配置它。
您可以从documentation:
中阅读针对Android 5.0及更高版本的Multidex支持
Android 5.0(API级别21)及更高版本使用名为ART的运行时,它本身支持从APK文件加载多个DEX文件。 ART在app安装时执行预编译,扫描classesN.dex文件并将它们编译成单个.oat文件,以供Android设备执行。因此,如果您的minSdkVersion为21或更高,则不需要multidex支持库。有关Android 5.0运行时的更多信息,请阅读ART和Dalvik。
注意:使用即时运行时,当您的应用
minSdkVersion
设置为 21 或更高时,Android Studio会自动为您的应用配置multidex 。由于Instant Run仅适用于应用程序的调试版本,因此您仍需要为multidex配置发布版本以避免64K限制。