欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

(满则溢)Android AS打包提示方法数超65536的解决方法

程序员文章站 2022-03-11 21:58:12
满则溢平常大家喝饮料啥的都知道一个杯子的容量,如果超出就溢出,这个时候只能在加个杯子装了,Android开发也是如此,当方法数超过65536的时候就需要分包为啥出现项目当中添加的依赖和架包太多了,方法数超过65536还是很正常的,所以打包的时候会提示异常网上不全的解决方法总所周知在app的build.gradle文件的defaultConfig中添加 defaultConfig { multiDexEnabled true }然而这个分包设置只能解决一部分问题...

满则溢

平常大家喝饮料啥的都知道一个杯子的容量,如果超出就溢出,这个时候只能在加个杯子装了,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); } 

方法就这了,项目架包问题没有混淆。
混淆需要分包的请看
混淆项目更改方法

本文地址:https://blog.csdn.net/qq_41816123/article/details/108163896

相关标签: Android