Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2019-09-23:有没有遇到64k问题,应该如何解决? #152

Open
Moosphan opened this issue Sep 23, 2019 · 12 comments
Open

2019-09-23:有没有遇到64k问题,应该如何解决? #152

Moosphan opened this issue Sep 23, 2019 · 12 comments

Comments

@Moosphan
Copy link
Owner

No description provided.

@zoushaohua
Copy link

分包(⊙o⊙)…

@zhaoerlei1989
Copy link

手机直接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);
}

@103style
Copy link

@zhaoerlei1989 继承MultiDexApplication 就不需要重写 attachBaseContext 了,你可以点进super.attachBaseContext(base); 里看看

@zoushaohua
Copy link

@zhaoerlei1989 继承MultiDexApplication 就不需要重写 attachBaseContext 了,你可以点进super.attachBaseContext(base); 里看看

有些第三方的也要求继承他们的Application, 哪里继承的来那么多

@gabyallen
Copy link

单个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);
}

@BuMiangYang
Copy link

突破65535 限制 实现三步走
1.导入依赖
‘com.android.support:multidex:1.0.3’
2.defaultConfig 增加设置
multiDexEnabled true
3.自定义Application 继承 MultiDexApplication

同步即可!
笔记在此可参考:https://www.jianshu.com/p/ade2e53b8ac2

@JianhuaWan
Copy link

继承 MultiDexApplication后不需要install了,他的父类实现这个方法

@duhang324
Copy link

分包,多dex优化。

@xiaoyunfei
Copy link

1、增加multidel依赖
2、gradle 增加multiDexEnabled true的配置
3、application继承multidexapplication
4、去掉无用的依赖

@zlrab
Copy link

zlrab commented Jan 17, 2021

  1. multidex分包处理(5.0以下需导入兼容库)
  2. 组件化

@lix-b
Copy link

lix-b commented Apr 5, 2021

现在的gradle都是默认配置multidex了,可以作为了解,新的开发者可能不会碰到这种问题

@mlinqirong
Copy link

使用分包 把classdex分成多个

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests