android 方法数64k,关于 Android Studio 配置方法数超过 64k 限制问题

项目中因为使用到了 Rxjava 等库,导致方法数超过了 64k 限制。于是准备使用 multidex 方案来解决,从此掉入了坑中。

ps:一般的项目如果出现了 64k 限制问题,首先必须考虑的是替换那些只为了方便使用一个小功能而引入的比较大的库,而不是使用下面要介绍的规避 64k 限制的方法。

首先得吐槽一下,开启 multidex 后,打包的速度简直不能再慢,打完一个包,我都可以喝完一杯咖啡了。。热爱生命的我们是最好不会使用它。

1.修改模块级 build.gradle 文件

android {

compileSdkVersion 21

buildToolsVersion "21.1.0"

defaultConfig {

...

minSdkVersion 14

targetSdkVersion 21

...

// Enabling multidex support.

multiDexEnabled true

}

...

}

dependencies {

compile 'com.android.support:multidex:1.0.0'

}

2.引用 MultiDexApplication 类

有两种方法来引用 MultiDexApplication 类,选一种使用即可。

继承 MultiDexApplication

public class MyApplication extends MultiDexApplication {

...

}

重写 Application 的 attachBaseContext 方法

public class MyApplication extends Application {

@Override

protected void attachBaseContext(Context base) {

super.attachBaseContext(base);

MultiDex.install(this);

}

}

记得在清单文件中注册 Application

...

android:name=".MyApplication">

...

友情提示:

千万不要忘了引用 MultiDexApplication 类这一步骤,否则,app 在 Android 5.0 以下版本中使用 umeng 统计会闪退,错误信息如下:

java.lang.NoClassDefFoundError: com.umeng.analytics.d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值