【问题标题】:"The System is out of resources." - Android Studio building process“系统资源不足。” - Android Studio 搭建过程
【发布时间】:2016-06-15 09:19:24
【问题描述】:

在通过 Android Studio 1.5 构建我的一个应用时,编译器会抛出系统资源不足的消息。我不明白为什么它会抛出错误,而它为其他应用程序构建得很好。

我的机器有 8GB 内存的 ubuntu14。所以,内存不是问题。我也试过改变工作室的vmoptions:

-Xms256m

-Xmx4096m

-Xss1024k

-XX:MaxPermSize=1024m

可能问题出在 java(jvm) 中。以下是编译器抛出的堆栈跟踪:

The system is out of resources.
Consult the following stack trace for details.
java.lang.*Error
at com.sun.tools.javac.comp.Check.checkType(Check.java:533)
at com.sun.tools.javac.comp.Attr$ResultInfo.check(Attr.java:476)
at com.sun.tools.javac.comp.Attr.check(Attr.java:275)
at com.sun.tools.javac.comp.Attr.visitLiteral(Attr.java:3859)
at com.sun.tools.javac.tree.JCTree$JCLiteral.accept(JCTree.java:2037)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.attribArgs(Attr.java:664)
at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1806)
at    com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1465)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:3226)
at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1897)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1815)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1465)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
at com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:3226)

以前有人遇到过这种问题吗?请帮助! 我从近 2 天开始就陷入了这个困境。 提前致谢!!

【问题讨论】:

  • 大家好,请提供您对该问题的建议。谢谢

标签: java android jvm android-gradle-plugin virtual-machine


【解决方案1】:

您的代码中的某处可能有错误的递归调用(无限递归)。唯一的解决办法是仔细检查。

详情请参阅this answer

【讨论】:

  • 感谢您的回复。我将分析错误递归调用的代码。
  • 您的问题是仅在构建过程中出现,还是在运行应用程序后出现?
  • 是的,它只在运行时出现。编译器在重建或清理应用程序期间不会抛出任何异常。