2016-10-02 18 views
2

最近更新到android 2.2。java.lang.OutOfMemoryError:无法创建新的本机线程

尝试打开一个现有的项目。它促使我转换,我接受。该项目的成功导入,但每当我试图建设,我得到:

Error:Execution failed for task ':app:mergeDebugResources'. > java.lang.OutOfMemoryError: unable to create new native thread 

我已经加入:

org.gradle.daemon=false 
GRADLE_OPTS="-Xmx2048m -Xms2048m -XX:MaxPermSize=1024m" 
org.gradle.jvmargs=-XX:MaxPermSize=512m 

到gradle.properties。尽管如此,它还没有奏效。

+0

你是否通过https://plumbr.eu/outofmemoryerror/unable-to-create-new-native-thread –

回答

3

无论何时JVM从操作系统请求新线程,您都有机会面对java.lang.OutOfMemoryError: Unable to create new native thread。只要底层操作系统无法分配新的本地线程,就会抛出此OutOfMemoryError。原生线程的确切限制是非常依赖于平台的,因此我们建议通过运行类似于以下示例的测试来找出这些限制。但是,在一般情况下,造成java.lang.OutOfMemoryError: Unable to create new native thread形势经历了以下几个阶段:

  1. 一个新的Java线程由 JVM内部运行
  2. JVM本机代码的代理请求的应用程序请求创建一个新的本地 线程操作系统的OS试图创建一个新的本地线程这 需要内存来分配给螺纹
  3. OS将拒绝 本机内存分配要么是因为32位Java进程大小 耗尽了它的内存地址空间 - 例如(2-4)GB进程大小 限制已被触发 - 或者虚拟内存的操作系统已经完全耗尽
  4. java.lang.OutOfMemoryError:无法创建新本机 抛出线程错误。

参考:https://plumbr.eu/outofmemoryerror/unable-to-create-new-native-thread

0

Switched back to gradle 2.1.3 from 2.2.0 fixed the problem.

this thread

相关问题