Android-Daily-Interview
Android-Daily-Interview copied to clipboard
2019-09-23:有没有遇到64k问题,应该如何解决?
分包(⊙o⊙)…
手机直接debug本身没有问题,但是打包的时候会出现Unable to execute dex: method ID not in[0, 0xffff]: 65536)这种问题导致打包失败,这是单个dex文件方法数超过64k导致的,基本上引入过多的依赖都会出现这个问题,解决方法: 1.导入依赖 'com.android.support:multidex:1.0.1' 2.defaultConfig增加这个设置 multiDexEnabled true 3.android下面增加这个设置 dexOptions { incremental true javaMaxHeapSize "4g" } 以上都是在app的buildl.gradle中设置的,编译。 4.打开自定义的Application,继承MultiDexApplication,并重写attachBaseContext方法
@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
@zhaoerlei1989 继承MultiDexApplication
就不需要重写 attachBaseContext
了,你可以点进super.attachBaseContext(base);
里看看
@zhaoerlei1989 继承
MultiDexApplication
就不需要重写attachBaseContext
了,你可以点进super.attachBaseContext(base);
里看看
有些第三方的也要求继承他们的Application, 哪里继承的来那么多
单个dex文件方法超过64k,基本上都是引用过多的依赖才导致的。 解决方案: 1.导入依赖 'com.android.support:multidex:1.0.1' 2.defaultConfig增加这个设置 multiDexEnabled true 3.android下面增加这个设置 dexOptions { incremental true javaMaxHeapSize "4g" } 以上都是在app的buildl.gradle中设置的,编译。 4.打开自定义的Application,继承MultiDexApplication,并重写attachBaseContext方法
@override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
突破65535 限制 实现三步走 1.导入依赖 ‘com.android.support:multidex:1.0.3’ 2.defaultConfig 增加设置 multiDexEnabled true 3.自定义Application 继承 MultiDexApplication
同步即可! 笔记在此可参考:https://www.jianshu.com/p/ade2e53b8ac2
继承 MultiDexApplication后不需要install了,他的父类实现这个方法
分包,多dex优化。
1、增加multidel依赖 2、gradle 增加multiDexEnabled true的配置 3、application继承multidexapplication 4、去掉无用的依赖
- multidex分包处理(5.0以下需导入兼容库)
- 组件化
现在的gradle都是默认配置multidex了,可以作为了解,新的开发者可能不会碰到这种问题
使用分包 把classdex分成多个