Rob*_*rra 96 android android-multidex
有很多关于MultiDex的帖子.我有时遇到过错误,包括multiDexEnabled true
在defaultConfig
我的build.gradle部分.
但是,这个功能到底是什么?使用它的场景是什么?
Com*_*are 146
引用文档:
Android应用程序(APK)文件包含Dalvik可执行文件(DEX)文件形式的可执行字节码文件,其中包含用于运行应用程序的编译代码.Dalvik可执行规范将单个DEX文件中可引用的方法总数限制为65,536,包括Android框架方法,库方法和您自己的代码中的方法.超过此限制要求您配置应用程序构建过程以生成多个DEX文件,称为多索引配置.
因此,该功能是:它允许您的复杂应用程序编译.使用它的方案是由于达到64K DEX方法参考限制而导致应用程序无法编译.这显示为构建错误,例如:
Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536
Run Code Online (Sandbox Code Playgroud)
Roh*_*ngh 35
单个.dex文件可以有65,536个方法(引用),因此如果引用数超过65,536,则使用multidex.
一个android应用程序被编译成一个.dex文件,该文件又压缩成一个.apk文件.
DVM(Dalvik虚拟机)使用.dex文件/文件来执行字节码.
是什么导致参考数超过65,536个限制?
您编写的方法+ Android Framework方法+第三方库(例如Volley,Retrofit,Facebook SDK等)方法.
我已阅读"某处"
App Compat 24.2.1包含16.5k方法
Google Play服务GCM 9.6.1包含16.7k方法
因此,如果您创建了一个具有App Compat 24.2.1的简单Hello world应用程序,那么您已经是1/4方式穿越单一DEX方法限制
来自 Android 开发者官方网站。
If your minSdkVersion is set to 21 or higher, multidex is enabled by default and you do not need the multidex support library.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
37767 次 |
最近记录: |