AndroidStudio解决Android 64k 方法数问题

1 . build.gradel文件dependencies标签下加入:

dependencies {

       ... ...

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

}

2 . 同样在build.gradel文件defaultConfig标签下加入:

   defaultConfig {

       multiDexEnabled true

   }

3 . 两种情况

①如果使用的自定义的Application类需继承 MultiDexApplication类, 如:

public class MyApplication extends MultiDexApplication {

... ...

}

然后在AndroidManifest.xml中的application标签中使用自己定义的Application, 如:


android:name=".MyApplication"

......>


②如果没有使用自定义的Application直接在AndroidManifest.xml中的application标签中加入:


android:name=".MultiDexApplication"

......>


如果遇到如下问题:

UNEXPECTED TOP-LEVEL ERROR:

java.lang.OutOfMemoryError: GC overhead limit exceeded

at com.android.dx.rop.code.ThrowingCstInsn.withNewRegisters(ThrowingCstInsn.java:103)

at com.android.dx.ssa.NormalSsaInsn.mapSourceRegisters(NormalSsaInsn.java:51)

at com.android.dx.ssa.SsaRenamer$BlockRenamer.visitNonMoveInsn(SsaRenamer.java:589)

at com.android.dx.ssa.NormalSsaInsn.accept(NormalSsaInsn.java:206)

at com.android.dx.ssa.SsaBasicBlock.forEachInsn(SsaBasicBlock.java:989)

at com.android.dx.ssa.SsaRenamer$BlockRenamer.process(SsaRenamer.java:373)

at com.android.dx.ssa.SsaRenamer$1.visitBlock(SsaRenamer.java:166)

at com.android.dx.ssa.SsaMethod.forEachBlockDepthFirstDom(SsaMethod.java:812)

at com.android.dx.ssa.SsaRenamer.run(SsaRenamer.java:163)

at com.android.dx.ssa.SsaConverter.convertToSsaMethod(SsaConverter.java:52)

at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:98)

at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:72)

at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:297)

at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:137)

at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:93)

at com.android.dx.command.dexer.Main.processClass(Main.java:729)

at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)

at com.android.dx.command.dexer.Main.access$300(Main.java:83)

at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)

at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)

at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)

at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)

at com.android.dx.command.dexer.Main.processOne(Main.java:632)

at com.android.dx.command.dexer.Main.processAllFiles(Main.java:505)

at com.android.dx.command.dexer.Main.runMultiDex(Main.java:334)

at com.android.dx.command.dexer.Main.run(Main.java:244)

at com.android.dx.command.dexer.Main.main(Main.java:215)

at com.android.dx.command.Main.main(Main.java:106)

Error:Execution failed for task ':app:dexDebug'.

> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_65\bin\java.exe'' finished with non-zero exit value 3

可在build.gradel文件中加入如下代码即可:

android {

... ...

dexOptions {

javaMaxHeapSize "2g"

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,665评论 2 45
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,263评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,355评论 19 139
  • 季节交替 必然感冒 像上班打卡 不感冒就代表没来 感冒是春天到来的象征 可外面还飘着雪 我也像雪一样 不知道终将飘...
    大棚盖浇饭阅读 2,415评论 0 0
  • 雪淡淡忧伤地坠落 恋雪的人还没到来 没有声音 没有哭诉 直到消失不见 就这样来去匆匆 好像从来就没出现过 可...
    念江子阅读 1,040评论 0 5