AndroidStudio中的javaMaxHeapSize和multiDexEnabled问题

    来公司已经四个月了,来公司之前,公司的代码是在eclipse上面开发的,但是我个人完全已经爱上了AndroidStudio了,决定把公司的代码转移阵地,和leader几番商量之后,来到了Studio,由于项目一点点变大,也要跟上时代App的步伐,所以这一步肯定是没错的,As的好处这里就不多说了,但是好处的同时也会带来苦恼,一些问题基本见都没见过,自己一点点的来就是唯一的解决办法。下面说两个我们遇到的问题

    当我们把项目转移到AS之后出现了下面两个问题,大家一起看看。
第一个错误就是方法数超过65536,很常见。如果要在之前在Eclipse中要分包啥的,反正很麻烦,现在有了AS大法好,下面说;第二个错误就是一个OOM,但不是我们平时见到的,是一个关于java层的OOM,error中有一个关于4g的错误标识,下面说。//当时忘了截图。。。。

这两个问题不知大家见过没见过,但是当我看见她的时候我蒙了,因为我在clean,build代码的是是successful的,run完之后竟然给我来了这么一出,但是我看到了其中的65536,DexIndexOverflowException,OOM,这么熟悉的几个bug代名词,让我浮想联翩,中间的过程就不说了,直接来处理方法,以及结果吧。

    对于上图中第一个error哪,处理方法是这样的,只要在app的build.gradle中加上下面这几句

1
2
3
4
5
6
7
defaultConfig {
multiDexEnabled true
}

dependencies {
compile 'com.android.support:multidex:1.0.0'
}

最后还要让你的自定义的Application类继承MultiDexApplication,就可以了。如果不想继承的话也可以,只要在你的application类里面重写这个方法就好了

1
2
3
4
5
6
protected void attachBaseContext(Context base) {

super.attachBaseContext(base);

MultiDex.install(this);
}

第一个我们已经fix掉了,下面我们来解决第二个问题,就是OOM,但这个OOM和我们平时见到的OOM不一样,这个是java层报的OOM,那就是运行时内存不够了呗,这里在build.gradle里面同样加上一句话也管用。

1
2
3
dexOptions {
javaMaxHeapSize "4g"
}

重新编译,运行,OK,可以了,Android之路,我们是在平坦的道路上曲折前行啊,这句话配上许岑老师就帅了。

坚持原创技术分享,您的支持将鼓励我继续创作!