2016-10-02 88 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

相關問題