满则溢
平常大家喝饮料啥的都知道一个杯子的容量,如果超出就溢出,这个时候只能在加个杯子装了,Android开发也是如此,当方法数超过65536的时候就需要分包
为啥出现
项目当中添加的依赖和架包太多了,方法数超过65536还是很正常的,所以打包的时候会提示异常
网上不全的解决方法
总所周知
在app的build.gradle文件的defaultConfig中添加
defaultConfig {
multiDexEnabled true
}
然而这个分包设置只能解决一部分问题,打包可以成功
但是在Android 5.0以下机型是无法支持的,会导致运行不了
解决方法
1.自己找包去重新导入(没试过,不推荐)
2.三部曲
混淆、gradle、Application三个地方都得改
1.在app的build.gradle文件的defaultConfig中添加
defaultConfig {
multiDexEnabled true
}
2.在app的build.gradle文件的dependencies中添加
dependencies {
implementation 'com.android.support:multidex:1.0.3'
}
3.修改AndroidManifest.xml的application然后让应用支持多DEX文件,在MultiDexApplication JavaDoc中描述了三种可选方法:
1、在AndroidManifest.xml的application中声android.support.multidex.MultiDexApplication;
2、如果你已经有自己的Application类,让其继承MultiDexApplication;
3、如果你的Application类已经继承自其它类,你不想修改它,那么可以重写attachBaseContext()方法;
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base); MultiDex.install(this);
}
方法就这了,项目架包问题没有混淆。
混淆需要分包的请看
混淆项目更改方法
下次见
本文详细解析了Android开发中因方法数超过65536导致的打包异常问题,介绍了如何通过启用multiDex、添加依赖及修改AndroidManifest.xml来解决此问题,确保应用在Android5.0以下设备也能正常运行。

被折叠的 条评论
为什么被折叠?



