将 macOS 更新到 Monterrey (12.0.1) 后,我在使用 ExtJS 启动本地项目时遇到了一个大问题。
当我执行时:
sencha app watch
得到错误:
Sencha Cmd v7.5.0.5
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007ff813dcb6f2, pid=18621, tid=0x000000000000a707
#
# JRE version: OpenJDK Runtime Environment (8.0_242-b08) (build 1.8.0_242-b08)
# Java VM: OpenJDK 64-Bit Server VM (25.242-b08 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C [libsystem_platform.dylib+0x16f2] _platform_strlen+0x12
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# [my app folder]/hs_err_pid18621.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
/Users/kellerkichel/bin/Sencha/Cmd/sencha: line 167: 18621 Abort trap: 6 $BASEDIR/$VER/sencha "$@"
有趣的是...如果再次运行...相同的命令(
sencha app watch
),错误发生变化:
2021-12-06 22:10:28.229 java[17909:173895] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSPlaceholderString initWithFormat:locale:arguments:]: nil argument'
*** First throw call stack:
(
0 CoreFoundation 0x00007ff813efae5b __exceptionPreprocess + 242
1 libobjc.A.dylib 0x00007ff813c5bb9d objc_exception_throw + 48
2 Foundation 0x00007ff814c9126d -[NSPlaceholderString initWithFormat:locale:arguments:] + 295
3 Foundation 0x00007ff814c9ff2f +[NSString stringWithFormat:] + 153
4 Update1478821341979869630.dylib 0x00000001218897a9 wuusgJAD + 553
5 Update1478821341979869630.dylib 0x0000000121874319 pGgFelzv + 9
6 Update1478821341979869630.dylib 0x0000000121888ab2 MKNXgAzM + 562
7 Update1478821341979869630.dylib 0x000000012188795d tyRtaPXr + 61
8 Update1478821341979869630.dylib 0x00000001218877bb ZWwnJFGw + 283
9 Update1478821341979869630.dylib 0x0000000121880dc6 Phdl_SDOTFG + 246
10 Update1478821341979869630.dylib 0x0000000121880e49 Phdl_SDOTF + 25
11 Update1478821341979869630.dylib 0x000000012186e505 Java_phdl_Phdl_SDOTF + 21
12 ??? 0x000000010e0e3407 0x0 + 4530779143
)
libc++abi: terminating with uncaught exception of type NSException
/Users/kellerkichel/bin/Sencha/Cmd/sencha: line 167: 17909 Abort trap: 6 $BASEDIR/$VER/sencha "$@"
再一次(
sencha app watch
)...另一个:
java(18084,0x7000041c5000) malloc: Heap corruption detected, free list is damaged at 0x6000005f3330
*** Incorrect guard value: 105553126503408
java(18084,0x7000041c5000) malloc: *** set a breakpoint in malloc_error_break to debug
/Users/kellerkichel/bin/Sencha/Cmd/sencha: line 167: 18084 Abort trap: 6 $BASEDIR/$VER/sencha "$@"
每次执行后,错误都会在上面的错误之间交替......
1 - JAVA 首先,我认为是JAVA版本的问题,所以我删除了所有安装的JAVA,包括brew安装的版本。
还删除了对 JAVA_HOME 的所有引用,并全新安装了 JAVA 8。没有成功...用 JAVA 11 和 JAVA 17 再次尝试,没有成功。
观察。在 JAVA 17 中,问题发生了变化,但这是因为 JAVA 17 不再有 javascript 处理器 (
javax
)。
2 - SENCHA CMD JAVA之后,检查了Sencha cmd,是否有更新什么的...我的Sencha cmd版本是7.4.0.39,令我惊讶的是有一个新版本(7.5.0.5),而且更新后仍然如此不工作。
有什么建议吗?
在discord 与一些 sencha MVP 交谈后...收到以下提示:
您必须删除以下文件: /用户/用户/库/应用程序支持/Sencha/Cmd/Update/app.properties
解决此问题后,系统将再次运行。 我希望这些答案可以帮助别人!!
更新!!!
在某些 macOS 更新后,删除 app.properties 将停止工作。 所以 sencha 报告将
bypass_lp:true
添加到 app.json
vi`查找。 -名称“app.json”-print`
行后
“框架”:“扩展”,
放置线:
“bypass_lp”:“真”,
进入每个文件,保存文件,然后重新运行。
原因:Sencha CMD 包含的 JRE 不是针对 ARM 架构编译的,甚至对于 Rosetta 2 也是如此。
我在 macOS 14.5 上使用 Docker Desktop 4.28.0 和 4.31.0 时也遇到了类似的问题。 将 Docker Desktop 升级到最新版本 - 4.32.0 解决了该问题。
不确定这是否与描述中提到的这个特定问题有关,但将我对修复的评论放在这里,因为我在寻找修复、原因等时跳到这里。它看起来像非常相似的问题,所以我假设其他人也可能会从途中发现的这条消息中受益。
Docker Desktop 发行说明: https://docs.docker.com/desktop/release-notes/#4320
讨论与致命错误相关的问题: https://github.com/docker/for-mac/issues/7286