NativeScript Angular项目构建Android时mergeDebugAssets错误求助
解决NativeScript Android构建时"unable to create new native thread"错误
这个错误本质是系统或JVM的线程资源耗尽了——虽然你没修改任何代码,但NativeScript的Gradle构建过程会创建大量线程,当系统允许的线程数不足时就会触发这个问题。试试下面这些方案:
临时调整系统线程数限制
在终端里执行命令临时提升用户可创建的线程数:ulimit -u 4096执行完后重新尝试构建。如果有效,想要永久生效的话,可以编辑
/etc/security/limits.conf文件(Linux系统),添加以下内容:* soft nproc 4096 * hard nproc 8192保存后重启终端或系统即可。
减小JVM线程栈大小
NativeScript构建依赖Gradle,默认的JVM线程栈可能过大,导致内存占用过高,能创建的线程数减少。在项目根目录的gradle.properties文件里(如果没有就新建一个)添加:org.gradle.jvmargs=-Xmx2048m -Xss256k-Xss256k把线程栈大小从默认的1M降到256k,这样每个线程占用的内存更少,系统就能容纳更多线程了。关闭Gradle并行构建
并行构建会同时启动多个线程,可能超出系统限制。同样在gradle.properties里添加:org.gradle.parallel=false释放系统资源
关闭当前不需要的程序(比如多个浏览器标签页、IDE实例、后台运行的其他构建任务),减少系统的线程和内存占用,再尝试构建。
这些方案应该能解决你的问题,毕竟你已经试过重装NativeScript和重新添加平台,排除了环境安装的问题,大概率是资源限制导致的。
内容的提问来源于stack exchange,提问作者Luis Fernando Hernandez
相关产品推荐
相关产品推荐

