I am using Android Studio on OS X. I am getting this error message:

失败:生成失败,出现异常.

  • 出了什么问题:

    错误代码:

  UNEXPECTED TOP-LEVEL ERROR:
  java.lang.OutOfMemoryError: GC overhead limit exceeded
      at com.android.dx.cf.code.RopperMachine.getSources(RopperMachine.java:665)
      at com.android.dx.cf.code.RopperMachine.run(RopperMachine.java:288)
      at com.android.dx.cf.code.Simulator$SimVisitor.visitLocal(Simulator.java:612)
      at com.android.dx.cf.code.BytecodeArray.parseInstruction(BytecodeArray.java:412)
      at com.android.dx.cf.code.Simulator.simulate(Simulator.java:94)
      at com.android.dx.cf.code.Ropper.processBlock(Ropper.java:782)
      at com.android.dx.cf.code.Ropper.doit(Ropper.java:737)
      at com.android.dx.cf.code.Ropper.convert(Ropper.java:346)
      at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:282)
      at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:139)
      at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:94)
      at com.android.dx.command.dexer.Main.processClass(Main.java:682)
      at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
      at com.android.dx.command.dexer.Main.access$600(Main.java:78)
      at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
      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:596)
      at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
      at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
      at com.android.dx.command.dexer.Main.run(Main.java:230)
      at com.android.dx.command.dexer.Main.main(Main.java:199)
      at com.android.dx.command.Main.main(Main.java:103)

我正在使用这个图书馆:

http://grepcode.com/snapshot/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/

我提取了JAR文件并将其添加到我的项目中——我正在try 构建的项目是:

https://github.com/domi007/silentSMS/

我理解这是因为我的XMS和XMX值太低.我将它们增加到:

/Applications/Android Studio.app/bin/idea.vmoptions,因此现在显示:

-Xms256m
-Xmx1024m

然而,我仍然得到了错误.这是什么原因造成的?除了silentSMS应用是一个Eclipse项目,我将代码移植到Android Studio之外,我没有做任何改变.就Android Studio 发现错误而言——事实并非如此,其他一切看起来都很好.

推荐答案

我认为有一种单独的方法可以提高dexing操作的堆限制.将此添加到build.gradle文件中的android闭包中:

dexOptions {
    javaMaxHeapSize "4g"
}

看看这是否有帮助.

(由this answer from Scott Barta人提供)

Java相关问答推荐

LocalTime解析截断时间的第二个值

Spring Boot找不到Mapper bean

那么比较似乎不是词典学的,尽管doctor 这么说

当一个链表中间有一个循环时,它的松散部分会发生什么?

Cucumber TestNG Assert失败,出现java. lang. Numbercycle异常

SpringBootreact 式Web应用程序的Spring Cloud Configer服务器中的资源控制器损坏

Java中实现的归并排序算法给出ArrayIndexOutOfBound异常

如何确定springboot在将json字段转换为Dto时如何处理它?

无法使用Java&;TestContainers获取AWS SQS队列的属性

PDFBox未加载内容

如何从Keyloak映射Hibernate实体中的用户

Spring Security不允许加载js

使用多个RemoteDatabase对象的一个线程

如何在JavaFX中处理多个按钮

JNI:将代码打包成自包含的二进制文件

有谁能帮我修一下这个吗?使输出变得更加整洁

使用SWIG将C++自定义单元类型转换为基本Java类型

在权限列表中找不到我的应用程序

如何使用Java ZoneID的区域设置?

java21预览未命名的符号用于try-with-resources