64k方法数限制原理与解决Android5.0之前的版本分包报错发现的
2017-08-01 08:52
295 查看
Android开发的朋友,遇到很多这样的情况,随着功能的增加,方法数增多,就会出现所谓的64k方法数问题。
产生原因
Android APK文件本质上是一个压缩文件,它包含的classes.dex文件是Dalvik字节码文件,这个dex文件中存放的就是编译后的Java代码。Dalvik可执行文件规范限制了单个.dex文件最多引用的方法数是65536个。
MultiDex的使用
google为了规避上述问题,推出了MultiDex解决方案解决方法数超限问题
配置build.gradle
android {
compileSdkVersion 21
buildToolsVersion “21.1.0”//必须使用21或之后的版本
defaultConfig {
…
minSdkVersion 14
targetSdkVersion 21
…
}
dependencies {
compile ‘com.android.support:multidex:1.0.0’
}
配置Application
如果用户没有重写Application,只需修改Manifest文件中的内容:
产生原因
Android APK文件本质上是一个压缩文件,它包含的classes.dex文件是Dalvik字节码文件,这个dex文件中存放的就是编译后的Java代码。Dalvik可执行文件规范限制了单个.dex文件最多引用的方法数是65536个。
MultiDex的使用
google为了规避上述问题,推出了MultiDex解决方案解决方法数超限问题
配置build.gradle
android {
compileSdkVersion 21
buildToolsVersion “21.1.0”//必须使用21或之后的版本
defaultConfig {
…
minSdkVersion 14
targetSdkVersion 21
…
// Enabling multidex support. multiDexEnabled true } ...
}
dependencies {
compile ‘com.android.support:multidex:1.0.0’
}
配置Application
如果用户没有重写Application,只需修改Manifest文件中的内容:
相关文章推荐
- NoClassDefFoundError------64k方法数限制原理与解决
- 谷歌分包方案解决64K方法数限制的遗留问题(4.4.4安卓系统的闪退崩溃)
- 最新使用VSS 2005版本控制发现无法自动签出的解决方法
- mysql4.1之前版本不支持子查询的解决方法
- (转)突破超星每月打印页数限制的解决方法+虚拟打印全部教程(适合3.8、3.9、4.0版本)
- linux 内核编译:内核配置原理与常见配置问题的解决方法&&内核版本控制解析
- node.js版本管理工具n无效的原理和解决方法
- (2.2.8.4 & 4.4.15.1)Gradle:multiDexEnabled之DEX 方法超过64K限制和gradle编译OOM问题解决
- DEX 方法超过64K限制和gradle编译OOM问题解决
- DEX 方法超过64K限制和gradle编译OOM问题解决
- 关于ECSHOP模板架设的服务器php版本过高报错的解决方法集合
- android studio DEX 方法超过64K限制和gradle编译OOM问题解决,异常名:Error:Execution failed for task ':app:dexDebug'. >
- 关于ECSHOP模板架设的服务器php版本过高报错的解决方法集合
- Android 方法数超过64k限制的解决办法
- Android dex file cannot exceed 64K错误,使用Mutidex解决Dex超出方法数的限制
- DEX 方法超过64K限制和gradle编译OOM问题解决,异常名:Error:Execution failed for task ':app:dexDebug'. > com.android.ide
- android5.0使用requestWindowFeature(Window.FEATURE_NO_TITLE)隐藏标题栏的报错的解决方法
- linux 内核编译:内核配置原理与常见配置问题的解决方法&&内核版本控制解析
- 关于ECSHOP模板架设的服务器php版本过高报错的解决方法(一)
- DEX 方法超过64K限制和gradle编译OOM问题解决